2

私の Android アプリケーションでは、ユーザーが設定画面を終了すると、更新された設定に従って UI を更新する必要があります。これを行う簡単な方法はありますか?

編集: 設定アクティビティ:

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

アプリでは、TextView を設定文字列の 1 つに変更する必要があります。

4

3 に答える 3

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 に答える
0

更新するアクティビティに OnSharedPreferenceChangeListener を実装し、メソッド onSharedPreferenceChanged(...) に実行するコードを含めます。

于 2013-09-09T15:42:53.213 に答える
0

UI を更新する必要がある場合は常に、それらの値をSharedPreferencesから取得する必要があります。プリファレンスを変更するときは、単に共有プリファレンスの値を更新し、ビューに戻ったときに ( onResume()) ビューを更新します (共有プリファレンスから値を再度取得することによって)。

于 2013-09-09T15:40:27.667 に答える