Android Tab Action Bar

I am trying to use the Android action bar for version 3.0, where I refer to

http://www.youtube.com/watch?v=gMu8XhxUBl8

The code in TabsActivity as follows:

 package com.test.actionbar; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; public class TabsActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab tabA = bar.newTab().setText("A Tab"); ActionBar.Tab tabB = bar.newTab().setText("B Tab"); ActionBar.Tab tabC = bar.newTab().setText("C Tab"); Fragment fragmentA = new AFragmentTab(); Fragment fragmentB = new BFragmentTab(); Fragment fragmentC = new CFragmentTab(); tabA.setTabListener(new MyTabsListener(fragmentA)); tabB.setTabListener(new MyTabsListener(fragmentB)); tabC.setTabListener(new MyTabsListener(fragmentC)); bar.addTab(tabA); bar.addTab(tabB); bar.addTab(tabC); } protected class MyTabsListener implements ActionBar.TabListener { private Fragment fragment; public MyTabsListener(Fragment fragment) { this.fragment = fragment; } public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub ft.add(R.id.fragment_container, fragment, null); } public void onTabUnselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } } } 

for a step-by-step tutorial, however, after completing the tutorial, I realized that in TabsActivity, in the onTabSelected method, it would require a variable that is container_id, and I'm not too sure how I can provide this even after viewing the api. I tried to delete the line and run it on the tablet, but it saves me the runtime.

Can anyone help me with this?

Sorry, I'm new to Android programming if the question sounds too simple.

Thanks in advance.

EDIT

 import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; public class ActionBarTabs extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab tabA = bar.newTab().setText("A Tab"); ActionBar.Tab tabB = bar.newTab().setText("B Tab"); ActionBar.Tab tabC = bar.newTab().setText("C Tab"); bar.addTab(tabA); bar.addTab(tabB); bar.addTab(tabC); } } 

UPDATE

 package com.debug.actionbartabs; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; public class TabsActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab tabA = bar.newTab().setText("A Tab"); bar.addTab(tabA); } } 
+6
source share
1 answer

Each of the classes should look like this:

 public class AFragmentTab extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_a, container, false); } } 

And the main action should look like this:

 package com.test.actionbar; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; public class TabsActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab tabA = bar.newTab().setText("A Tab"); ActionBar.Tab tabB = bar.newTab().setText("B Tab"); ActionBar.Tab tabC = bar.newTab().setText("C Tab"); Fragment fragmentA = new AFragmentTab(); Fragment fragmentB = new BFragmentTab(); Fragment fragmentC = new CFragmentTab(); tabA.setTabListener(new MyTabsListener(fragmentA)); tabB.setTabListener(new MyTabsListener(fragmentB)); tabC.setTabListener(new MyTabsListener(fragmentC)); bar.addTab(tabA); bar.addTab(tabB); bar.addTab(tabC); } protected class MyTabsListener implements ActionBar.TabListener { private Fragment fragment; public MyTabsListener(Fragment fragment) { this.fragment = fragment; } public void onTabReselected(Tab tab, FragmentTransaction ft) { } public void onTabSelected(Tab tab, FragmentTransaction ft) { ft.add(R.id.fragment_container, fragment, null); } public void onTabUnselected(Tab tab, FragmentTransaction ft) { // some people needed this line as well to make it work: ft.remove(fragment); } } 

I just found a copy of my code here: http://www.abelski.com/courses/android3ui/actionbar.pdf > _ <Therefore, in main.xml it looks like this:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/fragment_container"></LinearLayout> </LinearLayout> 
+12
source

Source: https://habr.com/ru/post/891246/


All Articles