我是Android开发的初学者。我有3个编辑框和一个“编辑”按钮。当我启动活动时,应禁用所有编辑框。当我单击“编辑”按钮时,所有3个编辑框都应启用,按钮文本应更改为“保存”。在更新编辑框中的数据后,当我单击“保存”按钮时,我应该能够将更新的数据发送到后端。
我的问题是如何使用单个按钮实现“编辑”和“保存”两个功能。
请帮帮我。
答案 0 :(得分:1)
如果我是你,我实际上会使用两个按钮进行编辑,一个用于保存。使它们具有相同的大小和相同的位置,当你想在它们之间切换时,使一个看不见,另一个看不见。这样做可以让你将onClickListeners分开,这样可以让你的代码更容易理解。
话虽如此,你也可以通过一个按钮在技术上实现它。只需要在按钮之间切换时更改按钮上的文本,并在点击监听器中添加if语句,以检查按钮当前所处的“模式”,以确定应采取的操作。
答案 1 :(得分:1)
你可以这样做:
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");
}
}
});
答案 2 :(得分:0)
我不确定是否有一种简单的方法可以做到这一点。但你可以肯定使用按钮点击的不同行为,如
// 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.
}
});
答案 3 :(得分:0)
这样做:
制作一个公共布尔变量
public boolean isClickedFirstTime = true;
在xml和
中启用3个editTexts false单击按钮
@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;
}
}