我正在构建一个应用程序,它有三个按钮可以打开Main Activity
中的每个活动。
第一个活动(收件箱活动)打开正常,但每次按下MMS按钮打开彩信活动时,应用程序崩溃然后打开彩信活动。当按下第三个按钮打开活动时也会发生同样的事情,但即使在按下第三个活动后,它也会打开MMS活动而不是第三个活动(SMS活动)。知道如何解决这个问题吗?
@Override
public void onClick(View v) {
Intent intent = new Intent(this, InboxActivity.class);
startActivity(intent);
Intent in = new Intent(this, MMSActivity.class);
startActivity(in);
}
答案 0 :(得分:1)
我不知道具体细节,但我能说的只是代码不正确。我假设你使用xml将按钮onClick(android.onClick = "<function name>"
)分配给onClick函数。如果是这样,onClick的代码应如下所示:
@Override
public void onClick(View v) {
switch(v.getId()){
case(R.id.<inbox button id>:
Intent intent = new Intent(this, InboxActivity.class);
startActivity(intent);
break;
case(R.id.<MMS button name>:
Intent intent = new Intent(this, MMSActivity.class);
startActivity(intent);
break;
case(R.id.<SMS button name>:
Intent intent = new Intent(this, SMSActivity.class);
startActivity(intent);
break;
}
注意&lt;&gt;表示您为相关对象指定的名称。 我希望这可以帮助你。如果我的回答或对问题的理解有问题,请在评论中告诉我。
答案 1 :(得分:0)
你做错了。
首先得到你的按钮
Button inboxButton = (Button) findViewById(R.id.buttonInbox);
// Then do setTag on the button, which uniquely allows button to be
// recognized in shared onClick Listener
inboxButton.setTag("InboxActivity");
inboxButton.setOnClickListener(this);
// get the mms button
Button mmsButton = (Button) findViewById(R.id.mmsButton);
mmsButton.setTag("MMSActivity");
mmsButton.setOnClickListener(this);
// Finally get the tag for your view:
@Override
public void onClick(View v) {
String tag = v.getTag() != null ? v.getTag().toString() : "";
// If you set a tag
if(!tag.trim().equals(""){
// Check if it equals "InboxActivity"
if(tag.equals("InboxActivity"){
// Launch the intent
Intent intent = new Intent(this, InboxActivity.class);
startActivity(intent);
// Same for "MMSActivity"
}else if(tag.equals("MMSActivity")){
Intent in = new Intent(this, MMSActivity.class);
startActivity(in);
}else{
// for debugging
Toast.makeText(this, "Unrecognized tag...", Toast.LENGTH_SHORT).show();
} // end inside if, else if else
} // end outer if
} // end onClick