2014-11-26 2 views
0

Я довольно новичок в разработке Android и нуждаюсь в помощи !.Вкладка ActionBar: кнопка onclick от фрагмента 1 до фрагмента 2

Я реализовал Навигация Вкладки с помощью ActionBar с помощью обучающей программы: http://developer.android.com/guide/topics/ui/actionbar.html#Tabs

Мое приложение имеет 3 фрагмента. Я создал кнопку на фрагменте 1 и нажатием этой кнопки я хочу вызвать фрагмент 2. Может ли кто-нибудь сказать мне, как я могу это сделать?

MenuActivity.java

public class MenuActivity extends Activity { 
// Declare Tab Variable 
ActionBar.Tab TabPreOp, TabConnect, TabInProcedure, TabPostOp; 
Fragment preOpFragmentTab = new PreOpFragmentTab(); 
Fragment cnCFragmentTab = new CnCFragmentTab(); 
Fragment inProcedureFragmentTab = new InProcedureFragmentTab(); 
Fragment postOpFragmentTab = new PostOpFragmentTab(); 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.menu_activity); 

    ActionBar actionBar = getActionBar(); 

    // Hide Actionbar Icon 
    actionBar.setDisplayShowHomeEnabled(false); 

    // Hide Actionbar Title 
    actionBar.setDisplayShowTitleEnabled(false); 

    // Create Actionbar Tabs 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 


    // Set Tab Icon and Titles 
    TabPreOp = actionBar.newTab().setText("Pre-Op"); 
    TabConnect = actionBar.newTab().setText("Connect & Calibrate"); 
    TabInProcedure = actionBar.newTab().setText("In-Procedure"); 
    TabPostOp = actionBar.newTab().setText("Post-Op"); 



    // Set Tab Listeners 
    TabPreOp.setTabListener(new TabListener(preOpFragmentTab)); 
    TabConnect.setTabListener(new TabListener(cnCFragmentTab)); 
    TabInProcedure.setTabListener(new TabListener(inProcedureFragmentTab)); 
    TabPostOp.setTabListener(new TabListener(postOpFragmentTab)); 

    // Add tabs to actionbar 
    actionBar.addTab(TabPreOp); 
    actionBar.addTab(TabConnect); 
    actionBar.addTab(TabInProcedure); 
    actionBar.addTab(TabPostOp); 
} 

Fragment1

public class PreOpFragmentTab extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.pre_op_activity, container, false); 

    Button button_continue = (Button) rootView.findViewById(R.id.button_continue); 
    button_continue.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 


     } 
    }); 
    return rootView; 
} 

}

и у меня есть класс TabListner.

Может кто-нибудь дать мне совет, как это сделать? Заранее спасибо.

Sushant

ответ

0

здесь приведен пример фрагмента trasactions:

button_continue.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
    Transaction transaction = getSupportFragmentManager().beginTransaction(); 
    ExampleFragment fragment = new ExampleFragment(); 
    transaction.replace(R.id.container, fragment); //This R.id.container should be replaced for the id you have in your activity(If u want show me your xml of your parent Activity) 
    transaction.addToBackStack(null); //If you want to add to the stack add this line 
    transaction.commit(); 

    } 
}); 

Для получения дополнительной информации вы можете увидеть это руководство:

http://developer.android.com/guide/components/fragments.html

+0

Спасибо за ответ @JpCrow! и я попробовал то, что вы упоминали, и это дает мне ошибку «Невозможно изменить идентификатор контейнера фрагмента». ЕСЛИ вы хотите, чтобы я мог опубликовать весь код того, что я сделал до сих пор. –

+0

Уверен! Введите код – JpCrow

+0

в сообщении. –

Смежные вопросы