【问题标题】:Android Studio - How I can save a button value?Android Studio - 如何保存按钮值?
【发布时间】:2017-08-10 18:51:51
【问题描述】:

我喜欢在使用按钮后保存和禁用按钮(下面的代码行):

btn1.setEnabled(false);

我已经知道我必须使用 SharedPreferences,但我仍然需要代码方面的帮助。我已经尝试了很多但没有成功。那是我的代码。

public class Pass extends AppCompatActivity implements View.OnClickListener {

private Button btn1;
private EditText text1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pass);

    btn1 = (Button) findViewById(R.id.button);
    btn1.setOnClickListener(this);

    text1 = (EditText) findViewById(R.id.editText);
    text1.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);



}


public void onClick (View view){


    if (text1.getText().toString().equals("Pass)){
        AlertDialog ad = new AlertDialog.Builder(this).create();
        ad.setMessage("Super");
        ad.show();
        Intent intent = new Intent(this,Popup.class);
        startActivity(intent);

        btn1.setEnabled(false);

    }else{
        String message = "Leider falsch";
        Toast.makeText(this,message, Toast.LENGTH_LONG).show();
    }
}

}

感谢您的帮助

【问题讨论】:

  • 您是否要在每次活动开始时禁用该按钮?
  • 您在哪里遇到问题?您无法保存 SharedPrefrences 中的值吗?还是有其他困扰您的事情?
  • 是的,我在第一次之后尝试制作按钮,禁用每个活动开始。

标签: java android button save sharedpreferences


【解决方案1】:
public class Pass extends AppCompatActivity implements View.OnClickListener 
{

private Button btn1;
private EditText text1;
private SharedPreferences sharefPref;
private SharedPreferences.Editor editor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pass);

btn1 = (Button) findViewById(R.id.button);
btn1.setOnClickListener(this);

text1 = (EditText) findViewById(R.id.editText);
text1.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
editor = sharedPref.edit();
}


public void onClick (View view){

if(sharedPref.getBoolean("YourKey"),true)
{
editor.putBoolean("YourKey",false);
editor.commit();

if (text1.getText().toString().equals("Pass)){
    AlertDialog ad = new AlertDialog.Builder(this).create();
    ad.setMessage("Super");
    ad.show();
    Intent intent = new Intent(this,Popup.class);
    startActivity(intent);

}else{
    String message = "Leider falsch";
    Toast.makeText(this,message, Toast.LENGTH_LONG).show();
}

}
}

}

【讨论】:

  • @Strecki 也许我理解错了,你在找什么?
  • 我认为您的代码还不错,但是当我重新启动应用程序时,按钮“btn1”仍然是可点击的。在我重新启动应用程序时,第一次使用后也必须禁用按钮 btn1。这真的很棘手。
  • 好的,现在当我点击按钮时,什么也没发生。我认为该按钮现在已永久禁用。
  • @Strecki 因为您拥有上一个应用程序的共享首选项。您必须卸载然后重新安装它
  • @Strecki 如果答案有用,请接受:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2021-07-07
  • 2017-12-29
  • 1970-01-01
  • 2021-12-21
相关资源
最近更新 更多