ActionBar中的下拉菜单列表导航

来源:互联网 发布:淘宝最老的店铺 编辑:程序博客网 时间:2024/04/28 03:14

主要有四个步骤

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")@Overrideprotected 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")@Overridepublic 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>




0 0
原创粉丝点击