gpt4 book ai didi

java - 跨 Activity 访问共享首选项

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:46 28 4
gpt4 key购买 nike

我在这个 .java 文件中有一个 SharedPreference;在底部,您可以看到我将值保存到 SharedPreferences GB_PREFERENCES_BENCH 和 GB_PREFERENCES_FLIES。我如何在另一个 Activity 中使用这些值?请参阅第二个代码示例,了解我想如何使用它。

package com.creativecoders.gymbuddy;

import com.creativecoders.gymbuddy.R;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;

public class Benchmark extends Activity {

public static final String GB_PREFERENCES = "Prefs";

public static final String GB_PREFERENCES_BENCH = "Bench";
public static final String GB_PREFERENCES_FLIES = "Flies";

SharedPreferences gBValues;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_benchmark);

gBValues = getSharedPreferences(GB_PREFERENCES, Context.MODE_PRIVATE);

}

public void onStart() {
super.onStart();

findViewById(R.id.button5).setOnClickListener(new handleButton5());

}

class handleButton5 implements OnClickListener {
public void onClick(View v) {

EditText editText1 = (EditText)findViewById(R.id.editText1);
String sWeight = editText1.getText().toString();
final double dWeight = Double.parseDouble(sWeight);

EditText editText2 = (EditText)findViewById(R.id.editText2);
String sPush = editText2.getText().toString();
final double dPush = Double.parseDouble(sPush);

EditText editText3 = (EditText)findViewById(R.id.editText3);
String sSit = editText3.getText().toString();
final double dSit = Double.parseDouble(sSit);

EditText editText4 = (EditText)findViewById(R.id.editText4);
String sPull = editText4.getText().toString();
final double dPull = Double.parseDouble(sPull);

double dBench = (((Math.floor(dWeight*.0664))*10)-10)+dPush;
double dFlies = (Math.floor(((Math.floor(dBench*.6)/10)*10)));

int iBench = (int)dBench;
int iFlies = (int)dFlies;

Editor editor1 = gBValues.edit();
editor1.putInt(GB_PREFERENCES_BENCH, iBench);
editor1.commit();

Editor editor2 = gBValues.edit();
editor2.putInt(GB_PREFERENCES_FLIES, iFlies);
editor2.commit();

}
}

}

这是我想要使用它的方式; (特别是在创建方法中将 TextView 的文本设置为 SharePreference 中的值)

package com.creativecoders.gymbuddy;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class Upper100Start extends Activity {

public static final String GB_PREFERENCES = "Prefs";
public static final String GB_PREFERENCES_CURLS = "Curls";
SharedPreferences gBValues;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.upper100start);

if (gBValues.contains(GB_PREFERENCES_CURLS)){
TextView TextView2 = (TextView)findViewById(R.id.textView2);
TextView2.setText(gBValues.getString(GB_PREFERENCES_CURLS, ""));
}

}
public void onStart() {
super.onStart();

findViewById(R.id.button2).setOnClickListener(new handleButton2());
findViewById(R.id.button3).setOnClickListener(new handleButton3());
}
class handleButton2 implements OnClickListener {
public void onClick(View v) {
Intent intent = new Intent(Upper100Start.this, Upper101.class);
startActivity(intent);
}
}
class handleButton3 implements OnClickListener {
public void onClick(View v) {
Intent intent = new Intent(Upper100Start.this, Main.class);
startActivity(intent);
}
}

}

最佳答案

共享首选项可在整个应用程序中访问,因此您可以从应用程序中的任何 Activity 中读取它们。

在 Activity A 中存储键/值对:

SharedPreferences settings = getSharedPreferences("mysettings", 
Context.MODE_PRIVATE);

SharedPreferences.Editor editor = settings.edit();
editor.putString("mystring", "wahay");
editor.commit();

从另一个 Activity 中读取这个值:

SharedPreferences settings = getSharedPreferences("mysettings", 
Context.MODE_PRIVATE);
String myString = settings.getString("mystring", "defaultvalue");

您可以在 http://developer.android.com/guide/topics/data/data-storage.html#pref 找到更多信息。

关于java - 跨 Activity 访问共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646543/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com