如何在OnClick下添加活动?

时间:2015-04-03 17:07:44

标签: android android-activity

我正在构建一个应用程序,它有三个按钮可以打开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);

}

2 个答案:

答案 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