使用spinner adapter实现多级联动选择

   2024-09-30 7330
核心提示:要实现多级联动选择,你可以使用Spinner和Adapter。以下是一个简单的示例,展示了如何使用Spinner Adapter实现两级联动选择:首

要实现多级联动选择,你可以使用Spinner和Adapter。以下是一个简单的示例,展示了如何使用Spinner Adapter实现两级联动选择:

首先,在activity_main.xml布局文件中添加两个Spinner:
    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:padding="16dp"    tools:context=".MainActivity">    <Spinner        android:id="@+id/spinner_level1"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <Spinner        android:id="@+id/spinner_level2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="16dp" /></LinearLayout>
MainActivity.java中,创建两个Spinner并设置适配器:
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends AppCompatActivity {    private Spinner spinnerLevel1;    private Spinner spinnerLevel2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        spinnerLevel1 = findViewById(R.id.spinner_level1);        spinnerLevel2 = findViewById(R.id.spinner_level2);        // 设置第一级Spinner的数据        ArrayAdapter<String> level1Adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, new String[]{"A", "B", "C"});        level1Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        spinnerLevel1.setAdapter(level1Adapter);        // 设置第二级Spinner的数据        final ArrayAdapter<String> level2Adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item);        level2Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        spinnerLevel2.setAdapter(level2Adapter);        // 设置第一级Spinner的选择监听器        spinnerLevel1.setOnItEMSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                // 根据第一级Spinner的选择更新第二级Spinner的数据                String selectedItem = parent.getItemAtPosition(position).toString();                if (selectedItem.equals("A")) {                    level2Adapter.clear();                    level2Adapter.addAll(new String[]{"A1", "A2", "A3"});                } else if (selectedItem.equals("B")) {                    level2Adapter.clear();                    level2Adapter.addAll(new String[]{"B1", "B2", "B3"});                } else if (selectedItem.equals("C")) {                    level2Adapter.clear();                    level2Adapter.addAll(new String[]{"C1", "C2", "C3"});                }                level2Adapter.notifyDataSetChanged();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });    }}

这个示例中,我们创建了两个Spinner,分别为spinnerLevel1spinnerLevel2。我们为spinnerLevel1设置了一个包含"A"、"B"和"C"的适配器。当用户选择spinnerLevel1中的一个选项时,我们会根据选项更新spinnerLevel2的数据。这样就实现了两级联动选择。

你可以根据需要扩展此示例,以支持更多级别的联动选择。

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

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