我是Android开发的初学者。我有 3 个编辑框和一个“编辑”按钮。当我启动活动时,所有编辑框都应该被禁用。当我单击“编辑”按钮时,所有 3 个编辑框都应启用,并且按钮文本应更改为“保存”。更新编辑框中的数据后,当我点击“保存”按钮时,我应该能够将更新的数据发送到后端。
我的问题是如何将单个按钮用于“编辑”和“保存”两个功能。
请帮我。
你可以这样做:
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String ButtonText = button.getText().toString();
if(ButtonText.equals("Save"){
//code for save
button.setText("Edit");
}
else{
//code for edit
button.setText("Save");
}
}
});
如果我是你,我实际上会使用两个按钮,一个用于编辑,一个用于保存。使它们具有相同的大小和相同的位置,当您想要在它们之间切换时,使它们不可见,而另一个可见。这样做可以让您将 onClickListeners 分开,这将使您的代码在我看来更容易理解。
话虽如此,您也可以通过一个按钮在技术上实现它。当您想在它们之间切换时,只需更改按钮上的文本,然后在您的点击侦听器中添加一个 if 语句来检查您的按钮当前处于哪种“模式”以确定它应该采取的操作。
这样做:
创建一个公共布尔变量
public boolean isClickedFirstTime = true;
使您的 3 个 editTexts 在 xml 中启用 false 和
onClick 你的按钮
@Override
public void onClick(View v) {
if (v.getId() == R.id.edit_button_id) { //whatever your id of button
Button button = (Button) findViewById(R.id.edit_button_id);
if(isClickedFirstTime)
{
edit1.setEnabled(true);
edit2.setEnabled(true);
edit3.setEnabled(true);
butt.setText("Save");
isClickedFirstTime = false;
}
else
{
....//Get your values from editText and update your database
isClickedFirstTime = true;
}
}
我不确定是否有一种简单的方法可以做到这一点。但你可以确定使用不同的按钮点击行为,比如
// When you press it for long time.
dummyButton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true; // Can do lot more stuff here I am just returning boolean
}
});
// Normal click of button
dummyButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//do lot more stuff here.
}
});