是否可以在同一视图上设置微调器和列表视图?

时间:2011-12-07 16:14:13

标签: android listview

  

可能重复:
  Is it possible to have a spinner and a list view on the same page?

我希望在视图的顶部有一个微调器,然后根据用户从微调器中选择的内容在微调器下面生成一个列表视图,是否有人知道这个的好教程或者有一些代码放在那个可能有帮助?

我通过扩展ListActivity成功使用ListView,但是在这种情况下我想在视图中使用除ListView以外的东西,所以我不知道该怎么办?

1 个答案:

答案 0 :(得分:1)

首先,您可以为活动创建布局,例如(layout_with_spinner):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"  
    android:orientation="vertical"  
    android:id="@+id/layout1">
    <LinearLayout   
        android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        <TextView 
            android:layout_width="40dip"
            android:layout_height="wrap_content"
            android:text="some text"/>
        <Spinner 
            android:layout_width="150dip"
            android:layout_height="fill_parent"                                  
            android:id="@+id/spinner1" />                         

    </LinearLayout>
    <ListView 
        android:id="@+id/list_view" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
    </ListView>         
</LinearLayout>

然后您可以创建从Activity

扩展的类
public class YourCoolActivity extends Activity
{
    private Spinner mSpinner;
    private ListView mList;             
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.layout_with_spinner);
            mSpinner= (Spinner)findViewById(R.id.spinner1);
            mList = (ListView)findViewById(R.id.list_view); 
            //here create some adapter. 
            mSpinner.setAdapter(yourAdapter);
            //set listener on select
            mSpinner.setOnItemSelectedListener(new OnItemSelectedListener()     
    {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int pos, long id)
        {                           
                         //here you can populate list with data
                         //create new list adapter depended on  (YourObjectModel)mSpinner.getSelectedItem()
                        // or pos
                         mList.setAdapter(newListAdapter);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0)
        {           
        }           
    }); 

    }
}

也许它有助于开始。你可以看看这个 sample查看关于微调器的一些示例