Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有两种功能的动态按钮_Android_Button_Dynamic_Options - Fatal编程技术网

Android 具有两种功能的动态按钮

Android 具有两种功能的动态按钮,android,button,dynamic,options,Android,Button,Dynamic,Options,我有一个动态按钮,它是由一个可以改变的变量创建的。我希望这些按钮有两个功能。我做了一个选择,但我不知道如何实现另一个选择 第一次单击按钮时,我调用了一个执行某些操作的函数,第二次单击同一按钮时,我想执行另一个操作。我想用创建的所有动态按钮重复这个过程 我的代码是: LinearLayout buttonsLayout = (LinearLayout)findViewById(R.id.linearlayoutUp); for(int i=0;i<drawView.ge

我有一个动态按钮,它是由一个可以改变的变量创建的。我希望这些按钮有两个功能。我做了一个选择,但我不知道如何实现另一个选择

第一次单击按钮时,我调用了一个执行某些操作的函数,第二次单击同一按钮时,我想执行另一个操作。我想用创建的所有动态按钮重复这个过程

我的代码是:

 LinearLayout buttonsLayout = (LinearLayout)findViewById(R.id.linearlayoutUp);

         for(int i=0;i<drawView.getNumeroMallas();i++){

                Button buttonMalla = new Button(this);
                buttonMalla.setText("Malla "+(i+1));
                buttonMalla.setId(i+1);

                final int index = i;

                buttonMalla.setOnClickListener(new OnClickListener() {
                   public void onClick(View v) {

                       Malla malla = drawView.getMalla(index);
                       drawView.paintMallaSelected(malla);


                   }

                        }
                    });
                    buttonsLayout.addView(buttonMalla);

             }


    }
LinearLayout按钮布局=(LinearLayout)findViewById(R.id.linearlayoutUp);

对于(int i=0;i编辑-非常重要:

我再次阅读了您的代码,您可以使用/来记住按钮的最后状态(我错过了
部分的
,对不起!)


一个想法是使用一个变量来知道哪一个是最后一个动作

布尔变量

private boolean action = false;
如果操作为false,则执行第一个操作并将其设置为true。如果为true,则执行第二个操作并将其设置为false。 它应该退出任何方法(类的全局)

差不多

private boolean action;
buttonMalla.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {

        if (action == true)
        {
            // Do first action
        }
        else
        {
            // Do second action
        }

        action = !action;

        Malla malla = drawView.getMalla(index);
        drawView.paintMallaSelected(malla);


    }

}
});
无论如何,如果它做了一些重要的事情,你应该更好地管理按钮(示例按钮操作不是基于布尔变量,而是在特定状态下)。很久以前,我在一个应用程序中构建了一个“全选”和“全选”功能,我检查了用户是否手动取消选择了一些东西,让按钮再次像“选择”一样工作…我希望我给了你一个想法


无论如何,布尔变量是最直接的方法。

您想更改按钮内的文本吗?“全选”和“取消选择”?您能更具体一点吗?我用更多的信息编辑我的帖子它工作得很好。只有我更改了第一个值buttonMaila.setTag(boolean.TRUE);
private boolean action = false;
private boolean action;
buttonMalla.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {

        if (action == true)
        {
            // Do first action
        }
        else
        {
            // Do second action
        }

        action = !action;

        Malla malla = drawView.getMalla(index);
        drawView.paintMallaSelected(malla);


    }

}
});