0

我是Android开发的初学者。我有 3 个编辑框和一个“编辑”按钮。当我启动活动时,所有编辑框都应该被禁用。当我单击“编辑”按钮时,所有 3 个编辑框都应启用,并且按钮文本应更改为“保存”。更新编辑框中的数据后,当我点击“保存”按钮时,我应该能够将更新的数据发送到后端。

我的问题是如何将单个按钮用于“编辑”和“保存”两个功能。

请帮我。

4

4 回答 4

2

你可以这样做:

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");
        }
    }

});
于 2013-10-17T17:36:27.770 回答
1

如果我是你,我实际上会使用两个按钮,一个用于编辑,一个用于保存。使它们具有相同的大小和相同的位置,当您想要在它们之间切换时,使它们不可见,而另一个可见。这样做可以让您将 onClickListeners 分开,这将使您的代码在我看来更容易理解。

话虽如此,您也可以通过一个按钮在技术上实现它。当您想在它们之间切换时,只需更改按钮上的文本,然后在您的点击侦听器中添加一个 if 语句来检查您的按钮当前处于哪种“模式”以确定它应该采取的操作。

于 2013-10-17T17:29:44.690 回答
0

这样做:

创建一个公共布尔变量

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;
                }
}
于 2013-10-17T17:55:46.230 回答
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.
    }
});
于 2013-10-17T17:30:18.717 回答