ActionBarCompact中的微调器

时间:2013-09-16 11:19:45

标签: java android spinner android-actionbar-compat

我是Android开发的初学者,所以请不要对我很难..

我正在尝试使用ActionBarCompact,以便ActionBar可以兼容 API级别8 。我想要一个旋转器,它可以帮助我进行导航活动。所以我的问题是我怎么能拥有它?我是否需要设置一些标志或添加到操作栏?我找不到任何符合我需要的例子。

我试过的是:

Menu.m

public class menu extends ActionBarActivity {

    ActionBar actionbar;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menutab);

        actionbar = getSupportActionBar();
        actionbar.setTitle("Menu");
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

//Now what should I do further?
    }
}

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

  <TextView android:text="menu tab!"
            android:padding="15dip"
            android:textSize="18sp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/> 
</LinearLayout>

编辑@ Szymon的评论问题

我为微调器设计的自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/simpleText"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee" />

以上用作:

ArrayAdapter<CharSequence> mSpinnerAdapter = ArrayAdapter.createFromResource(this,R.array.menu_items, R.id.simpleText);
actionbar.setListNavigationCallbacks(mSpinnerAdapter, this);

我会做很多错事。请帮助我纠正它们或指出我的好榜样......非常感谢。

1 个答案:

答案 0 :(得分:1)

1)您还需要创建一个适配器:

ArrayAdapter<CharSequence> mSpinnerAdapter =  
            ArrayAdapter.createFromResource(this, R.array.verbTypes,
            android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(mSpinnerAdapter, this);

2)并覆盖onNavigationItemSelected

@Override
public boolean onNavigationItemSelected(int arg0, long arg1) {

    switch (arg0) {
    case 0: // your code
    case 1: // your code
    }

    return true;
}

3)您无需在菜单xml中声明任何内容。

4)但是要像我一样使用简单的微调器适配器,你应该声明你的字符串:

<string-array name="verbTypes">
    <item>All</item>
    <item>Irregular</item>
    <item>Regular</item>
</string-array>