从 OnItemClickListener 获取数据

Get Data out of OnItemClickListener

我正在尝试从 Android Studio 中的这个微调器的 OnClickListener 函数中获取数据。 这是一段代码。

roleAdapter = ArrayAdapter.createFromResource(this,R.array.role, android.R.layout.simple_spinner_item);
roleAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
roleSpinner.setAdapter(roleAdapter);

roleSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int ?>position, 
long id) {
String roleText = parent.getItemAtPosition(position).toString();       
}
});

我有一个 "Next Button" 可以继续到下一个 Activity,但我想检查以确保用户在继续到下一个 Activity,否则创建一个 Toast 消息说请 select 从这个微调器中选择一个项目。

或许我只是不需要使用适配器...我不知道。

尝试使用这个:

使用setOnitemSelectedListener代替setOnItemClickListener

 roleSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override

        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

           String roleText = String.valueOf(roleSpinner.getSelectedItem());
        }

您可以像这样在 Activity 中设置一个 class 成员变量

private String roleText;

然后在您的 onItemSelectedListener 中将该变量设置为用户选择的任何内容

roleSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
       roleText = String.valueOf(roleSpinner.getSelectedItem());
    }
};

然后当他们点击"Next Button"你可以检查变量是否已经设置

if( roleText != null ) {
    // Toast message saying they have to select something
}
else {
    // go to next activity
}

Spinner 有一个名为 spinner.getSelectedItem() 的方法来获取 Spinner 的选定项。通过使用该方法,您可以检查是否选择了微调项,如下面的代码所述。

if(spinner != null && spinner.getSelectedItem() !=null ) {
    //one of the spinner items is selected. Do whatever you want.
} else  { 

}