我在活动上有一组按钮。当我点击一个按钮时,它会在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;
}
}
}
答案 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类的示例,该类从播放更改为暂停图标。
这是一种非常好的方式,因为所有代码都在一个中心位置。
你只需要添加一个静态布尔值来记住&#34;记住&#34;如果按钮现在处于打开状态,则播放或暂停&#34;
然后你可以检查它(例如在方法UpdateState中)并根据当前状态改变外观。
static boolean isPlay = true;
public void updateState() {
if (isPlay) {
//Change appearance
isPlay = false;
} else {
//Change appearance
isPlay=true;
}
}