我刚刚开始学习Java,而且我在为活动中的第二个按钮添加代码时感到困惑。我为我(可能是愚蠢的问题)和任何错误的术语道歉。
以下是MainActivity Java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnGo = (Button) findViewById(R.id.btnGo);
btnGo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, GoActivity.class));
}
});
}
}
如何将此代码添加到btnEscape以转到EscapeActivity?
答案 0 :(得分:2)
你只需要做与btnGo相同的事情 - 这是通过id找到你的按钮,然后将clickListener设置为它。它可能看起来像那样:
Button btnEscape = (Button) findViewById(R.id.btnEscape);
btnEscape.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, EscapeActivity.class));
}
});
答案 1 :(得分:1)
这样做的优化方法是使用View.OnClickListener实现您的类并覆盖onClick方法,并在其中使用switch case在视图之间切换并应用这样的点击:
public class SampleActivity extends AppCompatActivity implements View.OnClickListener{
Button btnGo,btnEscape;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnGo = (Button) findViewById(R.id.btnGo);
btnEscape= (Button) findViewById(R.id.btnEscape);
btnGo.setOnClickListener(this);
btnEscape.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnGo:
startActivity(new Intent(MainActivity.this, GoActivity.class));
break;
case R.id.btnEscape:
startActivity(new Intent(MainActivity.this, EscapeActivity.class));
break;
default:
break;
}
}
}
答案 2 :(得分:0)
在代码中,Shiram和Nik上面的两条评论所说的是在Button btnEscape...
阻止之后添加以Button btnGo.setOnclick
开始的块。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button btnGo = (Button) findViewById(R.id.btnGo);
...
Button btnEscape = (Button) findViewById(R.id.<<name of button in xml>>);
btnEscape.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
... whatever ... }
});
}
简而言之,以下是一个非常好的模式,触手可及:
Button btn___ = (Button) findViewById(R.id.<<name of button in xml>>);
btn___.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
... whatever ... }
});