主要有四个步骤
1、创建一个spinnerAdapter,tigonneirong
2、实现ActionBar.OnNavigationListener接口,处理对表单选择
3、创建ActionBar,并设置为下拉列表的导航模式
4、给这个下拉列表设置处理用户选择的回调处理
package com.example.actionbar_drop_down_list;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.ActionBar.OnNavigationListener;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Build;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.SpinnerAdapter;
@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class Main extends Activity{
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SpinnerAdapter adapter=ArrayAdapter.createFromResource(this, R.array.song,
android.R.layout.simple_spinner_dropdown_item);
ActionBar bar=getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
bar.setListNavigationCallbacks(adapter, new Down_to_Up());
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
class Down_to_Up implements OnNavigationListener{
String[] listNames = getResources().getStringArray(R.array.song);
/* 当选择下拉菜单项的时候,将Activity中的内容置换为对应的Fragment */
public boolean onNavigationItemSelected(int itemPosition, long itemId)
{
// 生成自定的Fragment
SongInfo student = new SongInfo();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
// 将Activity中的内容替换成对应选择的Fragment
transaction.replace(R.id.context, student, listNames[itemPosition]);
transaction.commit();
return true;
}
}
}
//自定义Framgment
package com.example.actionbar_drop_down_list;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@SuppressLint("NewApi")
public class SongInfo extends Fragment{
private String tag;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public void onAttach(Activity activity) {
super.onAttach(activity);
tag=getTag();
}
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView tv=new TextView(getActivity());
tv.setText(tag);
return tv;
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Main" >
<LinearLayout
android:id="@+id/context"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"></LinearLayout>
</RelativeLayout>
//定义一个数组
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ActionBar_Drop_Down_List</string>
<string name="action_settings">设置</string>
<string name="hello_world">Hello world!</string>
<string-array name="song">
<item > 杯中影 </item>
<item >爱情一阵风 </item>
<item >浪子的心情 </item>
<item >人生的第一步 </item>
<item >初恋 </item>
<item >为你唱一首歌 </item>
<item >奋斗的歌手 </item>
</string-array>
</resources>