Android单键多功能

时间:2013-10-17 17:24:54

标签: android button editbox

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

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

请帮帮我。

4 个答案:

答案 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;
                }
}