我在片段中设置了可见或不可见的文本视图:
startText = (TextView) view.findViewById(R.id.starting_text);
/** GET SHARED PREF VALUE */
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("prefN_b", Context.MODE_PRIVATE);
nnS = sharedPreferences.getInt("numB", DEFAULT);
Log.d("THIS", Integer.toString(nnS));
if (nnS > 0){
startText.setVisibility(View.INVISIBLE);
}else{
startText.setVisibility(View.VISIBLE);
}
在另一项活动中,我更新了共享的pref:
/** GET SHARED PREF VALUE */
SharedPreferences sharedPreferences = getSharedPreferences("prefN_b", Context.MODE_PRIVATE);
nnS = sharedPreferences.getInt("numB", DEFAULT);
/** GET TITLE FROM DATABASE */
DatabaseConnector dbConnector = new DatabaseConnector(this);
dbConnector.open();
Cursor c = dbConnector.ListAllNotes();
itemNN = c.getCount();
/** SAVE/UPDATE SHARED PREF VALUE */
SharedPreferences.Editor editorr = sharedPreferences.edit();
editorr.putInt("numB", itemNN);
editorr.commit();
现在都被置于相应活动的onCreate下,所以这只是在应用程序重启时更新,我希望它能在从活动转移到活动时工作,我应该在哪里放置代码?我试过onPause和onRestart组合,但没有工作..谢谢
解决:
AS @Mobile Developer建议在下面我将两个代码分别放在onResume()上。在片段onResume()中,我不得不将textview fetch修改为:startText = (TextView) this.getActivity().findViewById(R.id.starting_text);
答案 0 :(得分:0)
您可以在第一个活动中添加首选项侦听器(registerOnSharedPreferenceChangeListener),以便在首选项更改时更新TextView的可见性。
此外,正如Mobile Developer所述,您可以在第一个活动的onResume()中检查首选项,并在那里更新TextView。
答案 1 :(得分:0)
为什么不使用startActivityForResult(@Intent intent,@ int requestCode)而不是startActivity(@Intent) 第二个活动的数据将在onActivityResult中收到(在第一个活动中)