Android:保存按钮实例

Android:保存按钮实例,android,Android,你好,我正在做我的android项目。我已经创建了一个活动,其中use获得四个按钮,n我希望用户选择任意一个。我通过将其他按钮设置为.setClickable(false)来完成此操作。但当我重新启动或说重新启动应用程序时,所有按钮都被启用。我希望当用户选择一个按钮时,它应该保存它的选择,这样在重新启动应用程序时,用户就不会感到困惑。下面是一段代码: 通知类 package com.mateoj.multiactivitydrawer; import android.a

你好,我正在做我的android项目。我已经创建了一个活动,其中use获得四个按钮,n我希望用户选择任意一个。我通过将其他按钮设置为.setClickable(false)来完成此操作。但当我重新启动或说重新启动应用程序时,所有按钮都被启用。我希望当用户选择一个按钮时,它应该保存它的选择,这样在重新启动应用程序时,用户就不会感到困惑。下面是一段代码:

通知类

            package com.mateoj.multiactivitydrawer;

import android.app.Notification;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.NotificationCompat;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.mateoj.multiactivitydrawer.department.dept_1styeartab;
import com.pushbots.push.Pushbots;

public class notifications extends BaseActivity {
    private WebView webView;

    Button clickButton;
    Button clickButton1;
    Button clickButton2;
    Button clickButton3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Pushbots.sharedInstance().init(this);
        Pushbots.sharedInstance().setCustomHandler(customHandler.class);
        setContentView(R.layout.activity_notifications);
        final SharedPreferences preferences = getSharedPreferences("com.mateoj.multiactivitydrawer", MODE_PRIVATE);
        final SharedPreferences.Editor editor = preferences.edit();

        clickButton = (Button) findViewById(R.id.ncs);
        clickButton1 = (Button) findViewById(R.id.nmech);
        clickButton2 = (Button) findViewById(R.id.nece);
        clickButton3 = (Button) findViewById(R.id.neee);



        clickButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                Intent show = new Intent(getApplicationContext(), noti_cse.class);
                Pushbots.sharedInstance().tag("cse");
                Pushbots.sharedInstance().untag("mech");
                Pushbots.sharedInstance().untag("ece");
                Pushbots.sharedInstance().untag("eee");
                editor.putString("session", "cse").commit();
                editor.commit();
                startActivity(show);


            }
        });
        clickButton1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Intent show = new Intent(getApplicationContext(), noti_mech.class);

                Pushbots.sharedInstance().tag("mech");
                Pushbots.sharedInstance().untag("ece");
                Pushbots.sharedInstance().untag("eee");
                Pushbots.sharedInstance().untag("cse");
                editor.putString("session", "mech").commit();
                editor.commit();

                startActivity(show);


            }
        });
        clickButton2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Intent show = new Intent(getApplicationContext(), noti_ece.class);

                Pushbots.sharedInstance().tag("ece");
                Pushbots.sharedInstance().untag("mech");
                Pushbots.sharedInstance().untag("eee");
                Pushbots.sharedInstance().untag("cse");
                editor.putString("session", "ec").commit();
                editor.commit();
                startActivity(show);


            }
        });
        clickButton3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Intent show = new Intent(getApplicationContext(), noti_eee.class);

                Pushbots.sharedInstance().tag("eee");
                Pushbots.sharedInstance().untag("ece");
                Pushbots.sharedInstance().untag("mech");
                Pushbots.sharedInstance().untag("cse");
                editor.putString("session", "eee").commit();
                editor.commit();

                startActivity(show);


            }
        });
        onStartUp();



    }
    private void onStartUp()
    {
        SharedPreferences sharedPreferences = getSharedPreferences("com.mateoj.multiactivitydrawer", Context.MODE_PRIVATE);
        String str = sharedPreferences.getString("session", "");
        if (str.equals("cs")) {
            clickButton.setClickable(true);
            clickButton1.setClickable(false);
            clickButton2.setClickable(false);
            clickButton3.setClickable(false);

        } else if (str.equals("mech")) {
            clickButton.setClickable(false);
            clickButton1.setClickable(true);
            clickButton2.setClickable(false);
            clickButton3.setClickable(false);
        } else if (str.equals("ec")) {
            clickButton.setClickable(false);
            clickButton1.setClickable(false);
            clickButton2.setClickable(true);
            clickButton3.setClickable(false);
        } else if (str.equals("eee")) {
            clickButton.setClickable(false);
            clickButton1.setClickable(false);
            clickButton2.setClickable(false);
            clickButton3.setClickable(true);
        }

    }














  /*  private class MyWebViewClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

    }  */



    @Override
    protected boolean useDrawerToggle() {
        return false;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.action_credits)
            return true;

        if (item.getItemId() == android.R.id.home)
            onBackPressed();

        return super.onOptionsItemSelected(item);
    }


}

因此,此处应更改的内容

您可以使用SharedPreferences类保存用户选择。此视频可以帮助您入门-。只需将用户选择的按钮保存在与SharedPreferences类的键值对中。在活动重新启动或重新启动时,只需检查共享首选项实例中的值并相应地设置按钮setClickable(真)或setClickable(假)

编辑:

对所有单击侦听器重复此操作,并将每个按钮单击侦听器的“akash”更改为不同的(根据需要)

private void onStartUp(){
  SharedPreferences sharedPreferences = getSharedPreferences("com.mateoj.multiactivitydrawer", Context.MODE_PRIVATE);
  String str=sharedPreferences .getString("session","akash");
  if(str.equals("akash")){
    //set buttons setClickable(true) or setClickable(false)
  } else if(str.equals("..."))     //replace "..." with other strings which can replace "akash"
   //set buttons setClickable(true) or setClickable(false)
 } //continue the else if logic till all conditions are met
} 

调用onStartUp();在onCreate()中;设置按钮的单击侦听器后。

您可以做的一件事是保存
按钮的状态(每次您/用户单击
按钮
时,在
共享引用
上保存
true
false
)每次启动
活动
时,
setClickable()的值
SharedPreference的结果放入


这是一个选项,但有很多方法可以做到,这是其中之一。

我不知道您正在使用的这个框架(推送机器人),但我认为您忘记了在活动方法onCreate()期间检查哪个标记保存在推送机器人中,并根据它启用或禁用按钮。您正在将标签保存在Pushbots按钮上,但从不检查保存在按钮上的标签以启用或禁用按钮


我建议您直接使用,而不是使用这个框架,即使我不知道。SharedReferences的使用非常简单,我看不出有任何理由使用框架。

只需遵循以下步骤即可question@MaheshGiri请检查以上编码,然后进行更改以显示,这样我就可以知道是否工作了。我已经对代码进行了修改,但仍然不工作see@sunny设置clickButton3.setOnClickListener()后编写onstartup代码;在onCreate()中;方法。我已经做了更改。如果我正确退出应用程序,请查看代码是否有效。但假设有人选择了按钮,但没有正确关闭应用程序。如果用户按下home按钮直接退出应用程序,则不会保存该按钮。在这种情况下该怎么办基本上我说的是onPause()、onStop()和onDestroy()@sunny尝试调用onstartup();方法也在onResume()中;和onStart();方法。告诉我它是否有效。
private void onStartUp(){
  SharedPreferences sharedPreferences = getSharedPreferences("com.mateoj.multiactivitydrawer", Context.MODE_PRIVATE);
  String str=sharedPreferences .getString("session","akash");
  if(str.equals("akash")){
    //set buttons setClickable(true) or setClickable(false)
  } else if(str.equals("..."))     //replace "..." with other strings which can replace "akash"
   //set buttons setClickable(true) or setClickable(false)
 } //continue the else if logic till all conditions are met
}