UI Android

/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package app.test;
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;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
/**
 * This demonstrates the use of action bar tabs and how they interact
 * with other action bar features.
 */
public class Test extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void onAddTab(View v) {
        final ActionBar bar = getActionBar();
        final int tabCount = bar.getTabCount();
        final String text = "Tab " + tabCount;
        bar.addTab(bar.newTab()
                .setText(text)
                .setTabListener(new TabListener(new TabContentFragment(text))));
    }
    public void onRemoveTab(View v) {
        final ActionBar bar = getActionBar();
        bar.removeTabAt(bar.getTabCount() - 1);
    }
    public void onToggleTabs(View v) {
        final ActionBar bar = getActionBar();
        if (bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) {
            bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
            bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);
        } else {
            bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
        }
    }
    public void onRemoveAllTabs(View v) {
        getActionBar().removeAllTabs();
    }
    /**
     * A TabListener receives event callbacks from the action bar as tabs
     * are deselected, selected, and reselected. A FragmentTransaction
     * is provided to each of these callbacks; if any operations are added
     * to it, it will be committed at the end of the full tab switch operation.
     * This lets tab switches be atomic without the app needing to track
     * the interactions between different tabs.
     *
     * NOTE: This is a very simple implementation that does not retain
     * fragment state of the non-visible tabs across activity instances.
     * Look at the FragmentTabs example for how to do a more complete
     * implementation.
     */
    private class TabListener implements ActionBar.TabListener {
        private TabContentFragment mFragment;
        public TabListener(TabContentFragment fragment) {
            mFragment = fragment;
        }
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            ft.add(R.id.fragment_content, mFragment, mFragment.getText());
        }
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            ft.remove(mFragment);
        }
        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            Toast.makeText(Test.this, "Reselected!", Toast.LENGTH_SHORT).show();
        }
    }
    private class TabContentFragment extends Fragment {
        private String mText;
        public TabContentFragment(String text) {
            mText = text;
        }
        public String getText() {
            return mText;
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View fragView = inflater.inflate(R.layout.row, container, false);
            TextView text = (TextView) fragView.findViewById(R.id.text);
            text.setText(mText);
            return fragView;
        }
    }
}
//main.xml


              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
                     android:layout_width="match_parent"
                 android:layout_height="0dip"
                 android:layout_weight="1" />
                      android:layout_height="0dip"
                  android:layout_weight="1"
                  android:orientation="vertical">
                        android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="btn_add_tab"
                android:onClick="onAddTab" />
                        android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="btn_remove_tab"
                android:onClick="onRemoveTab" />
                        android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="btn_toggle_tabs"
                android:onClick="onToggleTabs" />
                        android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="btn_remove_all_tabs"
                android:onClick="onRemoveAllTabs" />
    

//row.xml


          android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />