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

   2024-09-30 8610
核心提示:在Android开发中,Spinner是一个下拉列表控件,可以用于在列表视图中进行嵌套首先,创建一个新的Android项目,并在activity_main

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

首先,创建一个新的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>
接下来,创建一个自定义的列表项布局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>
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;    }}
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>
最后,在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。用户可以在每个列表项中选择不同的选项。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号