Android 是否在其他活动中加载首选项?
我在MainActivity中存储了一个名为“tgpref”的值 在我的onCreate中,我有Android 是否在其他活动中加载首选项?,android,android-widget,sharedpreferences,textview,Android,Android Widget,Sharedpreferences,Textview,我在MainActivity中存储了一个名为“tgpref”的值 在我的onCreate中,我有 public SharedPreferences preferences; --- public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); preferences = getPreferences(MODE_
public SharedPreferences preferences;
---
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
preferences = getPreferences(MODE_PRIVATE);
我想在我的小部件中显示该值,所以我尝试在小部件提供程序类的onUpdate中写入该值
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean tgpref = preferences.getBoolean("tgpref", false)
if (tgpref == true) {
remoteViews.setTextViewText(R.id.battery, "Risp on");
} else {
remoteViews.setTextViewText(R.id.battery, "Risp off");
}
如果单击主活动中的切换按钮,我希望在我的小部件中显示“Risp打开”或“Risp关闭”。现在只显示“Risp off”,所以我不知道该怎么做。有什么帮助吗?什么也没发生我无法加载值看起来不错,所以我猜你的按钮不会触发值更改 主要活动
private Boolean mTgpref;
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
//get value from shared preferences and update ui
prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
mTgpref = prefs.getBoolean("tgpref", false);
setYourText();
}
private void setYourTextAndStoreToSharedPref(){
Log.i("TEST","mTgpref -> " + mTgpref); //check value
if(mTgpref){
remoteViews.setTextViewText(R.id.battery, "Risp on");
}
else
{
remoteViews.setTextViewText(R.id.battery, "Risp off");
}
prefs.edit().putBoolean("tgpref", mTgpref).commit();
//UPDATE YOUR WIDGET HERE
}
//function called on switch button click
private void onSwitchClickButtonClick(){
mTgpref = !mTgpref; //toggle Boolean
setYourText();
}
编辑
对不起,我误解了你的主要问题。更新SharedReferences后,您应该按照此处描述的步骤进行操作:有人可以帮助我吗?我无法加载widget.upps中的值,虽然您的主要问题是共享引用,但我将编辑我的答案
private Boolean mTgpref;
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
//get value from shared preferences and update ui
prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
mTgpref = prefs.getBoolean("tgpref", false);
setYourText();
}
private void setYourTextAndStoreToSharedPref(){
Log.i("TEST","mTgpref -> " + mTgpref); //check value
if(mTgpref){
remoteViews.setTextViewText(R.id.battery, "Risp on");
}
else
{
remoteViews.setTextViewText(R.id.battery, "Risp off");
}
prefs.edit().putBoolean("tgpref", mTgpref).commit();
//UPDATE YOUR WIDGET HERE
}
//function called on switch button click
private void onSwitchClickButtonClick(){
mTgpref = !mTgpref; //toggle Boolean
setYourText();
}