Android Custom Spinner问题

时间:2014-02-08 05:07:31

标签: android spinner android-custom-view

在我的应用程序中,我正在使用Custom Spinner。

为此,我遵循了教程link 在学习本教程时,我遇到一个小问题,每当用户从Spinner下拉列表中选择一个特定项目时,微调器的标题就会消失,并在该位置显示所选项目的名称,如下图所示。

但是,在这里我想要的是,应该有一个必须出现在微调器上的固定标题。 另一个问题是,当我从下拉菜单中进行选择时,之前选择的项目将显示在下拉菜单中所选项目的位置。 如图所示。

activity_main.xml中

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

      <Spinner
          android:id="@+id/customspinner"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_alignParentTop="true"
          android:layout_marginTop="40dp"
          android:background="@drawable/btn_dropdown" 
         android:drawSelectorOnTop="true"/>

spinner_row.xml

    android:id="@+id/RelativeLayout1"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:orientation="horizontal"
    android:background="@drawable/spinner_background"
    >

         <TextView
             android:id="@+id/spinnerText"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="center"
             android:text="Spinner Items" />

这是我的适配器代码。

Spinner spi.setAdapter(new MyCustomSpinner());

公共类MyCustomSpinner扩展了BaseAdapter     {

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return myList.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View myCustomView=convertView;

        if(convertView==null)
        {
            LayoutInflater inflater=getLayoutInflater();
            myCustomView=inflater.inflate(R.layout.spinner_row, null);

            TextView tv=(TextView)myCustomView.findViewById(R.id.spinnerText);
            tv.setText(myList.get(position));
        }
        return myCustomView;
    }

}

Image enter image description here

提前致谢

0 个答案:

没有答案