2016-06-09 23 views
1

我有一個活動女巫有開關的情況下,我也有兩個不同的片段。當我點擊一個按鈕時,我想要一個片段添加/替換該活動,當我點擊另一個按鈕時,另一個片段添加/替換該活動。 我該怎麼辦?Android中片段的條件

public void onClick(View view) { 
     switch (view.getId()){ 
      case R.id.button1: 
       Intent intentFaculty = new Intent(MainActivity.this, FacultyLoginActivity.class); 
       startActivity(intentFaculty); 
       break; 
      case R.id.button2: 
      Intent intentAdmin = new Intent(MainActivity.this, AdminLoginActivity.class); 
      startActivity(intentAdmin); 
      break; 
    } 
} 

而不是開始活動我想添加片段。

+0

顯示一些代碼。 –

+0

public void onClick(View view){ switch(view.getId()){ case R.id.button1: Intent intentFaculty = new Intent(MainActivity.this,FacultyLoginActivity.class); startActivity(intentFaculty); 休息; case R.id.button2: Intent intentAdmin = new Intent(MainActivity.this,AdminLoginActivity.class); startActivity(intentAdmin); 休息; } }而不是開始活動我想添加一個片段。 –

+0

你需要更多的幫助嗎?我的答案是否適合你? – bendaf

回答

0

在你的片段像創建一個接口:

public interface OnFragmentInteractionListener{ 
    void onClick(int buttonId); 
} 

實現你的界面在你的活動:

@Override 
public void onClick(int buttonId){ 
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    if(index == R.id.btn_change_fra){ 
     fragmentTransaction.addToBackStack("FragmentChange"); 
     newFragment = new NextFragment(); 
     fragmentTransaction.add(R.id.fragment, newFragment).commit(); 
    } 
} 

覆蓋onAttach在您的片段:

OnFragmentInteractionListener mListener; 
@Override public void onAttach(Context context){ 
    super.onAttach(context); 
    if(context instanceof OnFragmentInteractionListener){ 
     mListener = (OnFragmentInteractionListener) context; 
    }else{ 
     throw new RuntimeException(context.toString() 
              + " must implement OnFragmentInteractionListener"); 
    } 
} 

最後調用onClick中的onClick()方法:

public void onClick(View view) { 
    mListener.onClick(view.getId()); 
} 

就是這樣。我建議你使用更多獨特的名字。