spinner adapter在列表视图中的嵌套使用

avatar
作者
筋斗云
阅读量:0

在Android开发中,Spinner是一个下拉列表控件,可以用于在列表视图中进行嵌套

  1. 首先,创建一个新的Android项目,并在activity_main.xml布局文件中添加一个ListView控件。
    xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     tools:context=".MainActivity">     <ListView         android:id="@+id/listView"         android:layout_width="match_parent"         android:layout_height="wrap_content" />  </LinearLayout> 
  1. 接下来,创建一个自定义的列表项布局list_item.xml,其中包含一个TextView和一个Spinner控件。
<?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="wrap_content"     android:orientation="horizontal"     android:padding="8dp">     <TextView         android:id="@+id/textView"         android:layout_width="0dp"         android:layout_height="wrap_content"         android:layout_weight="1"         android:text="Item Text" />      <Spinner         android:id="@+id/spinner"         android:layout_width="wrap_content"         android:layout_height="wrap_content" />  </LinearLayout> 
  1. MainActivity.java中,创建一个自定义的适配器CustomAdapter,继承自BaseAdapter
public class CustomAdapter extends BaseAdapter {     private Context context;     private List<String> data;      public CustomAdapter(Context context, List<String> data) {         this.context = context;         this.data = data;     }      @Override     public int getCount() {         return data.size();     }      @Override     public Object getItem(int position) {         return data.get(position);     }      @Override     public long getItemId(int position) {         return position;     }      @Override     public View getView(int position, View convertView, ViewGroup parent) {         if (convertView == null) {             convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);         }          TextView textView = convertView.findViewById(R.id.textView);         Spinner spinner = convertView.findViewById(R.id.spinner);          textView.setText(data.get(position));          ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(context,                 R.array.spinner_items, android.R.layout.simple_spinner_item);         spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);         spinner.setAdapter(spinnerAdapter);          return convertView;     } } 
  1. strings.xml中添加Spinner的数据源。
   <string name="app_name">SpinnerInListView</string>    <array name="spinner_items">         <item>Option 1</item>         <item>Option 2</item>         <item>Option 3</item>     </array> </resources> 
  1. 最后,在MainActivity.java中设置ListView的适配器。
public class MainActivity extends AppCompatActivity {     private ListView listView;     private CustomAdapter adapter;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          listView = findViewById(R.id.listView);          List<String> data = new ArrayList<>();         for (int i = 1; i <= 20; i++) {             data.add("Item " + i);         }          adapter = new CustomAdapter(this, data);         listView.setAdapter(adapter);     } } 

现在运行应用程序,你将看到一个包含20个列表项的ListView,每个列表项都有一个TextView和一个Spinner。用户可以在每个列表项中选择不同的选项。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!