2

在我的 Android 应用程序中,当用户退出首选项屏幕时,需要根据更新后的首选项更新 ui。有什么简单的方法可以做到这一点吗?

编辑:偏好活动:

public class Settings extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);
    }
}

在应用程序中,需要将 TextView 更改为首选项字符串之一。

4

3 回答 3

0

无论哪里需要更新 UI,这些值都应该从SharedPreferences中获取。当您更改首选项时,只需更新您的共享首选项值,当您返回视图 ( onResume()) 时更新您的视图(通过再次从共享首选项中获取值)。

于 2013-09-09T15:40:27.667 回答
0

在要更新的活动中实现 OnSharedPreferenceChangeListener 并在方法 onSharedPreferenceChanged(...) 中包含要执行的代码

于 2013-09-09T15:42:53.213 回答
0

我认为它很容易从你正在做的任何活动开始这个活动你应该开始它使用

startActivityForResult(<Your intent>, MY_PREFERENCE);

现在你可以覆盖onActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {

        Log.d("VideoListActivity.onActivityResult ", "Opening");
        switch(requestCode)
        {
        case MY_PREFERENCE:
            switch(resultCode)
            {
            case RESULT_OK:
                // do your stuff

                break;
            case RESULT_CANCELED:
                // do your stuff

                break;

            default:
                break;
            }

            break;

        default:
            break;
        }

        Log.d("VideoListActivity.onActivityResult ", "Closing");
        super.onActivityResult(requestCode, resultCode, data);

    }

并记住,当您在孩子活动中完成工作时,您必须使用此设置结果

    Intent intent = new Intent();
    intent.putExtra("isUpdated", true);
    setResult(RESULT_OK, intent);
于 2013-09-09T16:06:05.580 回答