1

ボタンの状態を保存する方法を知っている人はいますか? 特定の条件に基づいて永続的に有効になるボタンを有効にしたいのですが、ユーザーがアプリケーションを終了しても有効なままにする必要があります。私はすでにボタンを有効にしました。どうすればそれを保存して、ずっと有効にすることができますか?

このように有効に設定しています。ボタンを有効にするために、他のクラスで putExtra を使用しています。

Button page2 = (Button) findViewById(R.id.button2);

    Intent intent2=getIntent();

    String isEnabled2 = intent2.getStringExtra("isEnabled2");
    if(isEnabled2==null||isEnabled2.equals("disabled")){
            page2.setEnabled(false);
    }
    else{
            page2.setEnabled(true);
    }

    page2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {

            Intent myIntent = new Intent(view.getContext(), p3.class);
            startActivityForResult(myIntent, 0);

        }
    });

編集

Button page2 = (Button) findViewById(R.id.button2);

    Intent intent2=getIntent();
    String isEnabled2 = intent2.getStringExtra("isEnabled2");
    if(isEnabled2==null||isEnabled2.equals("disabled")){
            page2.setEnabled(false);
    }
    else

    {

            page2.setEnabled(true);
            SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(Enable.this);
            SharedPreferences.Editor editor = preferences.edit();
            editor.putBoolean("Name",true);    //name is the key so may use a username or whatever you want 
            editor.commit();  
    }
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    boolean btnEnabled = preferences.getBoolean("Name",false); //false because you probably want that as your default value
    if(btnEnabled)
    {
         page2.setEnabled(true);
    }

    page2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {

            Intent myIntent = new Intent(view.getContext(), p3.class);
            startActivityForResult(myIntent, 0);

        }
    });
4

2 に答える 2

2

共有設定で状態を保存し、ユーザーがアプリを開いたときに値を確認できます。別のオプションは、ユーザーのために保存する必要がある他のデータがたくさんある場合、 SQLite DBに保存することです。

共有設定の使用に関する例はたくさんあるので、ここに別の例を書く代わりに、SO での良い例です。

共有設定の例

if(isEnabled2==null||isEnabled2.equals("disabled")){
        page2.setEnabled(false);
}
else{
        page2.setEnabled(true);
        //create an editor and put your value in there
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("Name",true);    //name is the key so may use a username or whatever you want 
        editor.commit();
     }

次に、この値を取得したいとき

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean btnEnabled = preferences.getBoolean("Name",false); //false because you probably want that as your default value
if(btnEnabled)
{
     page2.setEnabled(true);
}

このようなものがうまくいくはずです。私はそれをチェックしていませんが、それはあなたを動かすはずです

編集

最初に有効にするには、xml で次のようにします。

android:clickable="false"

onCreate()または、共有設定をチェックする前にプログラムで設定します

page2.setEnabled(false);
于 2013-02-23T16:34:04.663 に答える