Android入門のActionBarでTabナビゲーションを実現
5059 ワード
効果図:
MainActivity.java
DummyFragment.java
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jk.actionbartab"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="jk.actionbartab.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="action_settings">Settings</string>
<string name="app_name">Tab </string>
<string name="title_activity_main">ActionBar Tab </string>
<string name="personal_page"> </string>
<string name="query_page"> </string>
<string name="pay_page"> </string>
</resources>
MainActivity.java
package jk.actionbartab;
import jk.actionbartab.R;
import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
public class MainActivity extends Activity implements ActionBar.TabListener {
private static final String SELECTED_ITEM = "selected_item";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ActionBar actionBar = getActionBar();
// ActionBar :Tab
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// 3 Tab , 3 Tab
actionBar.addTab(actionBar.newTab().setText(R.string.personal_page)
.setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(R.string.query_page)
.setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(R.string.pay_page)
.setTabListener(this));
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState.containsKey(SELECTED_ITEM)) {
// Fragment
getActionBar().setSelectedNavigationItem(
savedInstanceState.getInt(SELECTED_ITEM));
}
}
public void onSaveInstanceState(Bundle outState) {
// Fragment Bundle
outState.putInt(SELECTED_ITEM, getActionBar()
.getSelectedNavigationIndex());
}
public void onTabUnselected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
}
// Tab
public void onTabSelected(ActionBar.Tab tab,FragmentTransaction fragmentTransaction) {
// Fragment
Fragment fragment = new DummyFragment();
// Bundle , Fragment
Bundle args = new Bundle();
args.putInt(DummyFragment.ARG_SECTION_NUMBER, tab.getPosition() + 1);
// fragment
fragment.setArguments(args);
// FragmentTransaction
FragmentTransaction ft = getFragmentManager().beginTransaction();
// fragment Activity container
ft.replace(R.id.container, fragment);
//
ft.commit();
}
public void onTabReselected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
}
}
DummyFragment.java
package jk.actionbartab;
import android.app.Fragment;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class DummyFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
// Fragment View
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER_HORIZONTAL);
// Fragment Bundle
Bundle args = getArguments();
// TextView
textView.setText(args.getInt(ARG_SECTION_NUMBER) + "");
textView.setTextSize(30);
// TextView
return textView;
}
}