如果无法解决Android Spinner选择问题,该如何解决?

时间:2019-04-16 04:28:48

标签: android kotlin android-spinner

Android Spinner无法正常工作,API正在正常工作,并且Spinner的项目列表正在正常工作。但是,项目选择无效。

class PlayerSignup2Activity : AppCompatActivity() {

    private lateinit var positions : List<Position>

    val positionSpinner = positionsSpinner

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(com.example.app.R.layout.activity_user_signup2)

        //Positions from API
        positions = APIService.getPositions(this)

        val spinnerAdapter = ArrayAdapter(this, R.layout.spinner_item, positions)
        spinnerAdapter.setDropDownViewResource(R.layout.spinner_item)
        positionSpinner.adapter = spinnerAdapter

    }

纺纱厂名单 Spinner List

选择任何项目后

After selecting an item from the list

关于如何解决此问题的任何想法?!

2 个答案:

答案 0 :(得分:0)

尝试使用prompt在。XML文件中添加标题

<Spinner
          android:id="@+id/spinner"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:prompt="@string/spinner_title"/>

或尝试再添加1个包含所需标题的项目,例如索引0上的“选择位置”。

positions.add("select position");
positions.add("value 1");

在将值添加到列表之后,默认情况下使用以下代码将微调器值设置为索引0。 mSpinner.setSelection(0)

然后在Item Selected上检查索引0或值是否为“选择位置”,然后忽略选择,否则执行所需的操作。

 private lateinit var positions : List<Position>


        //add dummy data first
        positions.add(Position("select position"));

        //Positions from API
        positions.addAll(APIService.getPositions(this));

答案 1 :(得分:0)

尝试一下

<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

在科特林

class MainActivity : /** Other Classes, */AdapterView.OnItemSelectedListener {

var list_of_items = arrayOf("Item 1", "Item 2", "Item 3")

override fun onCreate(savedInstanceState: Bundle?) {
    spinner!!.setOnItemSelectedListener(this)

    // Create an ArrayAdapter using a simple spinner layout and languages array
    val aa = ArrayAdapter(this, android.R.layout.simple_spinner_item, list_of_items)
    // Set layout to use when the list of choices appear
    aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    // Set Adapter to Spinner
    spinner!!.setAdapter(aa)
}

override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id:Long{
    // use position to know the selected item
    //here you will get the answwer
}

override fun onNothingSelected(arg0: AdapterView<*>) {

}
}
相关问题