Android:设置一个Button来做几件事

时间:2016-11-04 17:13:38

标签: android

任何人都可以帮助我吗?我被困在这件事上大约一周。我想设置一个按钮来做几件事。例如:当我按下按钮一次 - b1.setBackgroundResource(R.drawable.a),当我按两次 - b1.setBackgroundResource(R.drawable.b)时,按下第三个 - b1.setBackgroundResource(R.drawable.c)等等。有可能这样做吗?非常感谢!

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button b1 = (Button) findViewById(R.id.button);

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

                }
            }
    );
}

4 个答案:

答案 0 :(得分:1)

定义了一个int计数器。在npm set maxsockets 3 增加它并根据它的值

做任何你想做的事

答案 1 :(得分:1)

是的,这是可能的 使用称为setTag和getTag的按钮属性。它与flag

的工作方式相同

示例:

      b1.setTag("1");
        b1.setOnClickListener(
        new Button.OnClickListener() {
            public void onClick(View v) {
             if b1.getTag().equals("1"){
             b1.setTag("2")

            }
            else if(b1.getTag().equals("2")) {} 
            }
        }
  );

答案 2 :(得分:0)

我找到了一个最近的教程,详细说明并解释了如何做你想做的事情,但它是通过短按和长按按钮完成的。 试试这个:https://www.youtube.com/watch?v=cUgL8b7M8ns 希望它有所帮助。

答案 3 :(得分:0)

创建全局变量

private int index = 0;

然后在你的代码中执行此操作

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

                switch (index) {
                    case 0:
                        firstFunction();
                        break;

                    case 1:
                        secondFunction();
                        break;
                }

                // Advance your counter and extract the % 
                index++;  
                index = index % numOfDifferentFunctions; 
            }
        }
);