我目前有四个按钮。第四个按钮是我添加的重置按钮,用于将活动重置为最初启动时的状态。但是,当我添加重置按钮时,它会永久禁用其中一个按钮,即使以前,这些按钮是按照他们应该的方式启用/禁用的。以下是相关代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
// non relevant code
okButton = (Button) findViewById(R.id.ok);
okButton.setOnClickListener(this);
changeButton = (Button) findViewById(R.id.change_button);
changeButton.setOnClickListener(this);
nextButton = (Button) findViewById(R.id.next_button);
nextButton.setEnabled(false);
nextButton.setOnClickListener(this);
reset = (Button) findViewById(R.id.reset);
reset.setEnabled(false);
reset.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ok:
changeButton.setEnabled(false);
okButton.setEnabled(false);
nextButton.setEnabled(true);
break;
case R.id.change_button:
changeButton.setEnabled(false);
okButton.setEnabled(false);
nextButton.setEnabled(true);
break;
case R.id.next_button:
nextButton.setEnabled(false);
okButton.setEnabled(true);
changeButton.setEnabled(true);
break;
case R.id.reset:
Intent intent = getIntent();
finish();
startActivity(intent);
break;
default:
break;
}
}
在添加所有涉及重置按钮的部分之前,一切都按应有的方式工作。本质上,我想要的行为是:
最初:next 和 reset 被禁用,当单击 change 或 ok 时它们变为启用
单击 change 或 ok 时,它们都被禁用(以防止单击多次)并且 reset 和 next 都启用
单击下一步或重置时,它们将被禁用并更改并启用。
在添加重置代码之前,更改、确定和下一步按钮的行为一直有效。然后下一个按钮被永久禁用。怎么了?我如何解决它?
编辑*:
这是按钮的xml代码:
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/change_button"
android:layout_alignBottom="@+id/change_button"
android:layout_toLeftOf="@+id/reset"
android:text="@string/Ok" />
<Button
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/change_button"
android:layout_alignBottom="@+id/change_button"
android:layout_alignParentLeft="true"
android:text="@string/next_button" />
<Button
android:id="@+id/reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/reset" />
<Button
android:id="@+id/change_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="14dp"
android:layout_toRightOf="@+id/next_button"
android:text="@string/change" />