2013-06-07 2 views
1

Я пробовал несколько методов, но я не могу заставить их работать.Как начать фрагмент при нажатии кнопки?

Here's my main activity

и при нажатии на кнопку, он должен открыть начало фрагмента,

like so

Небольшая помощь будет очень высоко ценится.

Кстати, я использую actionSherlock плагин для фрагментов

+1

Какой у вас код? Есть много способов добиться этого. –

+0

Могу ли я отправить вам свои файлы проекта? – digiknowzone

+0

вот ссылка к моему предыдущему сообщению, которое содержит большинство фрагментов кода: http://stackoverflow.com/questions/16909193/linking-from-an-activity-to-a-fragment-activity-with-a- button-using-actionbarshe – digiknowzone

ответ

0

Вот ваша активность с 2-мя вкладками,

public class MainActivity extends SherlockFragmentActivity { 
    /** Called when the activity is first created. */ 

    public Fragment frag1; 
    public Fragment frag2; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     ActionBar bar = getSupportActionBar(); 
     bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     ActionBar.Tab tab1 = bar.newTab(); 
     ActionBar.Tab tab2 = bar.newTab(); 

     tab1.setText(""); 
     tab1.setIcon(R.drawable.abs__ic_menu_share_holo_dark); 
     tab2.setText(""); 
     tab2.setIcon(R.drawable.abs__ic_voice_search); 




      tab1.setTabListener(new MyTabListener()); 
      tab2.setTabListener(new MyTabListener()); 

      bar.addTab(tab1); 
      bar.addTab(tab2); 



    } 

    private class MyTabListener implements ActionBar.TabListener { 
     @Override 
     public void onTabSelected(Tab tab, FragmentTransaction ft) { 

      switch (tab.getPosition()) { 
      case 0: 

       if (frag1 == null) { 
        // If not, instantiate and add it to the activity 
        frag1 = Fragment.instantiate(getApplicationContext(), 
          FeedsActivity.class.getName()); 
        ft.add(android.R.id.content, frag1, "Feeds"); 
       } else { 
        // If it exists, simply attach it in order to show it 
        ft.show(frag1); 
       } 
       return; 

      case 1: 
       if (frag2 == null) { 
        // If not, instantiate and add it to the activity 
        frag2 = Fragment.instantiate(getApplicationContext(), 
          ProfileActivity.class.getName()); 
        ft.add(android.R.id.content, frag2, "Profile"); 
       } else { 
        // If it exists, simply attach it in order to show it 
        ft.show(frag2); 
       } 
       return; 


     } 

     @Override 
     public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
      // TODO Auto-generated method stub 
      if (frag1 != null) { 
       // Detach the fragment, because another one is being attached 
       switch (tab.getPosition()) { 
       case 0: 
        ft.hide(frag1); 
        return; 
       case 1: 
        ft.hide(frag2); 
        return; 

       } 

      } 
     } 

     @Override 
     public void onTabReselected(Tab tab, FragmentTransaction ft) { 
      // TODO Auto-generated method stub 
     } 
    } 
} 

Начало этой деятельности при нажатии щелкает

fragm1.java

public class fragm1 extends Fragment { 


@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // Inflating layout 
     View v = inflater.inflate(R.layout.activity_fragment, container, false); 
     // We obtain layout references 

     return v; 

    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     // Button reset=(Button)findViewById(R.id.reset); 




    } 





} 
+0

Спасибо! Я попробую, я дам вам знать. – digiknowzone

+0

Я встречаюсь с некоторыми ошибками, я думаю, что это связано с моим импортом. Вот мой импорт: import android.app.ActionBar; импорт android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.Fragment; Можете ли вы проверить, какие импортные товары мне не хватает? – digiknowzone

+0

Вы используете собственные библиотеки действий. Импортируйте соответствующие sherlock librays. –

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