2015-04-03 74 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