【问题标题】:How to create Multiple Selection Spinner in Android如何在 Android 中创建多选微调器
【发布时间】:2015-08-31 07:39:29
【问题描述】:

我正在使用下面的代码来创建一个简单的 Spinner(只允许单选)

但现在我想知道如何使用微调器进行多项选择,我知道我可以使用 Dialog 来实现这一点,但我必须使用微调器..

public class MainActivity extends Activity {

    Spinner spnr;

    String[] celebrities = {
            "Chris Hemsworth",
            "Jennifer Lawrence",
            "Jessica Alba",
            "Brad Pitt",
            "Tom Cruise",
            "Johnny Depp",
            "Megan Fox",
            "Paul Walker",
            "Vin Diesel"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        spnr = (Spinner)findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                this, android.R.layout.simple_spinner_item, celebrities);

        spnr.setAdapter(adapter);
        spnr.setOnItemSelectedListener(
                new AdapterView.OnItemSelectedListener() {

                    @Override
                    public void onItemSelected(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {

                        int position = spnr.getSelectedItemPosition();
                        Toast.makeText(getApplicationContext(),"You have selected "+celebrities[+position],Toast.LENGTH_LONG).show();
                        // TODO Auto-generated method stub
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) {
                        // TODO Auto-generated method stub

                    }

                }
            );
    }

}

【问题讨论】:

标签: android spinner


【解决方案1】:

默认情况下微调器不能用于多选。

如果你需要它,你必须扩展它,检查这里

Android Spinner with multiple choice

【讨论】:

    【解决方案2】:

    要创建一个带有 MultiSelect 下拉功能的微调器,您可以在 android 中使用这个库 MultiSelectSpinner

    您可以查看自述文件以了解如何使用此库。或者,这里是展示如何实现这个库的简单示例

    • 在应用级别 build.gradle 中添加依赖项。您可以单击上面的库链接以获取当前版本。现在我使用的是 1.0.0
        implementation 'com.github.puskal-khadka:MultiSelectSpinner:1.0.0'
    
    • 在 xml 上添加以下视图
    <com.puskal.multiselectspinner.MultiSelectSpinnerView
         android:id="@+id/multiSelectSpinner"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginEnd="8dp"
      />
    
    • 最后设置数据,活动/片段微调器的逻辑
      val testDataList = arrayListOf("Kotlin", "Java", "Python", "Php", "Swift")
            with(binding) {
                multiSelectSpinner.buildCheckedSpinner(testDataList){ selectedPositionList, displayString ->
                    tvSelectedPosition.text = "Selected position:  $selectedPositionList" //if kotlin, python selecteed:returned postion will be 0,2
                    tvDispString.text = "Display String:  $displayString"
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多