2015-04-03 62 views
0

我正在构建一个应用程序,它有三个按钮可以打开Main Activity中的每个活动。如何添加到OnClick下的活动?

第一项活动(收件箱活动)打开正常,但每次按彩信按钮打开彩信活动时,应用程序崩溃,然后打开彩信活动。当我按下第三个按钮打开活动时,同样的事情发生,但即使在按下第三个活动后,它也会打开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

安置自己的'logcat' – bjiang 2015-04-03 17:16:22

回答

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; 
} 

注<>代表分配给有问题的对象的名称。 我希望这可以帮助你。如果我在回答或理解问题时出现问题,请在评论中告诉我。

+0

感谢** ** Cyber​​Geek.exe一个工作! – 2015-04-03 17:30:18

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