2014-11-24 44 views
-1

我有我的onClick處理程序開關的情況下,我想我的每個按鈕的點擊時啓動不同的活動。但是我得到的問題是,當我點擊Person1(AmyProfile Activity)的Imagebutton1時,兩個活動都開始了。所以我得到了AmyProfile活動之上的JohnProfile活動。相反,我應該只是得到AmyProfile活動。我有一個switchcase爲我的onClick按鈕,但兩者的活動也開始

public class HomeFragment extends Fragment implements View.OnClickListener { 

    public HomeFragment(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_home, container, false); 

     ImageButton person1 = (ImageButton) rootView.findViewById(R.id.person1); 
     ImageButton person2 = (ImageButton) rootView.findViewById(R.id.person2); 
     person1.setOnClickListener(this); 
     person2.setOnClickListener(this); 

     return rootView; 
    } 

    @Override 
    public void onClick(View view) { 
     switch(view.getId()) { 
      case R.id.person1: 
       Intent intent1 = new Intent(view.getContext(), AmyProfile.class); 
       startActivityForResult(intent1, 0); 
      case R.id.person2: 
       Intent intent2 = new Intent(view.getContext(), JohnProfile.class); 
       startActivityForResult(intent2, 0); 

     } 
    } 
} 
+1

您應該已經收到警告與此代碼,讓您以明確的指導會是什麼發生是由於缺少一個'break'語句並允許'switch'通過。你檢查過警告了嗎? – 2014-11-24 07:06:39

回答

4

你應該的情況下結束後添加破

@Override 
public void onClick(View view) { 
    switch(view.getId()) { 
     case R.id.person1: 
      Intent intent1 = new Intent(view.getContext(), AmyProfile.class); 
      startActivityForResult(intent1, 0); 
      break ; 
     case R.id.person2: 
      Intent intent2 = new Intent(view.getContext(), JohnProfile.class); 
      startActivityForResult(intent2, 0); 
      break ; 
    } 
} 
+0

雖然非常正確縮進... – 2014-11-24 07:06:00

+0

哇無法相信我忘了break語句。謝謝 – 2014-11-24 07:10:28

0

花花公子添加break;聲明到您的switchcase

+0

@Krumia - 不要太急躁 - 這是問題的答案。 – 2014-11-24 07:40:24

+1

但是,您可能要添加的代碼片段來說明 – 2014-11-24 07:40:56

+1

@RobBaillie:我個人覺得,答案需要它背後的一些工作。如果答案是微不足道的,我覺得它只是一個評論。 – Krumia 2014-11-24 07:45:47

相關問題