Android 如何在SharedReference更改时更新TextView?
我一直在尝试下面的方法来更新对SharedReference所做的任何更改,但是我很难想出下一步该怎么做。有人吗?:)Android 如何在SharedReference更改时更新TextView?,android,sharedpreferences,Android,Sharedpreferences,我一直在尝试下面的方法来更新对SharedReference所做的任何更改,但是我很难想出下一步该怎么做。有人吗?:) 您没有注册OnPreferenceChangedListener。在onCreate中调用userInfo.registeronSharedReferenceChangeListener(this),它应该可以工作。您在任何时候都不会将SharedReferenceChangedListener添加到您的SharedReference中 试试这个: userInfo.reg
您没有注册OnPreferenceChangedListener。在
onCreate
中调用userInfo.registeronSharedReferenceChangeListener(this)
,它应该可以工作。您在任何时候都不会将SharedReferenceChangedListener添加到您的SharedReference中
试试这个:
userInfo.registerOnSharedPreferenceChangeListener(this);
仅在实例化userInfo对象之后。仅供尝试
public class CallForwardActivity extends Activity implements OnSharedPreferenceChangeListener
{
SharedPreferences userInfo;
Context context;
UserController userControl;
private static final String USERINFO_FILE = "StoredUserInfo";
private TextView setActiveNumberTV;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.callforward);
context = this;
userInfo = this.getSharedPreferences(USERINFO_FILE, 0);
userInfo.registerOnSharedPreferenceChangeListener(this);
userControl = new UserController(context);
setActiveNumberTV = (TextView) findViewById(R.id.activeNumberTextView);
setActiveNumberTV.setText(userControl.GetActiveNumber());
final RelativeLayout showAvailablenumbers = (RelativeLayout) findViewById(R.id.showAvailableNumbers);
showAvailablenumbers.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent i = new Intent(getParent(), AvailableNumbersActivity.class);
SettingsActivityGroup parentActivity = (SettingsActivityGroup)getParent();
parentActivity.ReplaceView("Show Available Numbers Activity", i);
}
});
}
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1)
{
setActiveNumberTV.setText(arg0.getString(arg1, "default"));
}
}
您错过了在共享首选项chnaged()上注册。。!
public class CallForwardActivity extends Activity implements OnSharedPreferenceChangeListener
{
SharedPreferences userInfo;
Context context;
UserController userControl;
private static final String USERINFO_FILE = "StoredUserInfo";
private TextView setActiveNumberTV;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.callforward);
context = this;
userInfo = this.getSharedPreferences(USERINFO_FILE, 0);
userInfo.registerOnSharedPreferenceChangeListener(this);
userControl = new UserController(context);
setActiveNumberTV = (TextView) findViewById(R.id.activeNumberTextView);
setActiveNumberTV.setText(userControl.GetActiveNumber());
final RelativeLayout showAvailablenumbers = (RelativeLayout) findViewById(R.id.showAvailableNumbers);
showAvailablenumbers.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent i = new Intent(getParent(), AvailableNumbersActivity.class);
SettingsActivityGroup parentActivity = (SettingsActivityGroup)getParent();
parentActivity.ReplaceView("Show Available Numbers Activity", i);
}
});
}
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1)
{
setActiveNumberTV.setText(arg0.getString(arg1, "default"));
}
}