创建一个按钮以执行两次单击操作

时间:2016-09-30 11:54:01

标签: android

我在活动上有一组按钮。当我点击一个按钮时,它会在textview上设置一个文本,它会改变按钮的背景颜色。然后,当我按下相同的按钮时,它将转到下一个活动。下面的代码执行这些操作。我更改了按钮的文本并执行第二次单击操作。有没有更好的方法来做到这一点而不改变文字。

在我为1个按钮显示的代码中。我以同样的方式为其他按钮做。

活动

public class Activity2 extends ActionBarActivity implements View.OnClickListener {

Button R1btn, R2btn, R3btn;
private TableLayout tableLayout;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_2);
        tableLayout=(TableLayout)findViewById(R.id.tl);

    R1btn = (Button) findViewById(R.id.button1);
    R1btn.setOnClickListener(this);

    }
    @Override
    public void onClick(View view) {
    switch(view.getId()){

    case R.id.button1:
      Button button1 = (Button)view;
      String btnText = button1.getText().toString();

      if (btnText.equals("1")) {

        R1btn.setBackgroundColor(Color.RED); 
        R2btn.setBackgroundColor(Color.GREEN)); 
        R3btn.setBackgroundColor(Color.GREEN)); 

        TextView rTV  = (TextView) findViewById(R.id.rTV);
            rTV.setText(R1);
        button1.setText("1 ");  

}   else if (btnText.equals("1 ")) {

            Intent intent = new Intent(Activity2.this, Activity3.class);
            startActivity(intent);
        button1.setText("1");

    break;
}
}
}

5 个答案:

答案 0 :(得分:1)

通过使用按钮的标记,您将能够实现目标。示例代码如下:

if (hourOfDay > 12) {
    hourOfDay = hourOfDay - 12;
    String AM_PM = "PM";
} else if (hourOfDay < 12) {
    String AM_PM = "AM";
}else{
    String AM_PM = "PM"; // this means it is 12 in the afternoon
}

答案 1 :(得分:0)

使用长按

 button = (Button) findViewById(R.id.button_view);
button .setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        shortclick();
    }
 });

button .setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
    longclick();
    return true;
}

});

public void shortclick()

{  Toast.makeText(这个,“你为什么这样做?这很伤!!!”,Toast.LENGTH_LONG).show();

}

public void longclick()

public void shortclick()

和其他单击

答案 2 :(得分:0)

您可以定义静态布尔变量,这些变量将映射到相应的按钮。单击按钮使变量为true。根据变量值,您可以执行操作。无需更改按钮的文本。

答案 3 :(得分:0)

//初始化值

boolean isButton1 = false;

//点击方法

@Override
    public void onClick(View view) {
    switch(view.getId()){

    case R.id.button1:

    isButton1 != isButton1;
      if (isButton1) {

        R1btn.setBackgroundColor(Color.RED); 
        R2btn.setBackgroundColor(Color.GREEN)); 
        R3btn.setBackgroundColor(Color.GREEN)); 

        TextView rTV  = (TextView) findViewById(R.id.rTV);
            rTV.setText(R1);

    }   else  {

            Intent intent = new Intent(Activity2.this, Activity3.class);
            startActivity(intent);

    }
    break;

}
}

答案 4 :(得分:0)

以下是有人创建自己的Button类的示例,该类从播放更改为暂停图标。

这是一种非常好的方式,因为所有代码都在一个中心位置。

https://github.com/CyanogenMod/android_packages_apps_Apollo/blob/085099c04708d75380b1c996094dbdc7dc0a11a0/src/com/andrew/apollo/widgets/PlayPauseButton.java

你只需要添加一个静态布尔值来记住&#34;记住&#34;如果按钮现在处于打开状态,则播放或暂停&#34;

然后你可以检查它(例如在方法UpdateState中)并根据当前状态改变外观。

static boolean isPlay = true;
public void updateState() {
        if (isPlay) {
            //Change appearance
            isPlay = false;
        } else {
            //Change appearance
            isPlay=true;
        }
    }
相关问题