在我的应用程序中,我正在使用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;
}
}
提前致谢