从OnItemClickListener中获取数据

时间:2018-07-26 02:07:46

标签: android android-spinner android-adapter

我正在尝试从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();       
}
});

我有一个“下一步按钮”以继续进行下一个活动,但是我想检查以确保用户在继续下一个活动之前已从此微调器中选择了一个项目,否则创建一条Toast消息,提示您选择一个此微调器中的项目。

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

3 个答案:

答案 0 :(得分:1)

尝试使用此:

使用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());
        }

答案 1 :(得分:1)

您可以像这样在“活动”中设置类成员变量

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());
    }
};

然后,当他们单击“下一步”按钮时,您可以检查变量是否已设置

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

答案 2 :(得分:0)

Spinner具有称为spinner.getSelectedItem()的方法,用于获取微调器的选定项目。通过使用该方法,您可以按照以下代码中的说明检查是否选择了微调器项目。

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

}