【发布时间】:2018-04-21 18:28:30
【问题描述】:
我正在尝试将 Spinner 数组中选择的值项传递给 API 调用请求。
我无法将值放到 setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 之外。
我尝试使用堆栈溢出答案中提供的大多数选项,但是当我尝试打印字符串时,它显示为空。
获取外部字符串变量的正确方法是什么,以便我可以通过请求将其作为值发送,甚至打印它。
public class Profile2 extends AppCompatActivity implements View.OnClickListener {
private String gender;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//final String gender = (String) genderspinner.getSelectedItem().toString().trim();
// Spinner gender = (Spinner) findViewById(R.id.genderspinner);
//final EditText etGender = (EditText) findViewById(R.id.etGender);
final Spinner genderspinner = findViewById(R.id.genderspinner);
//String gender;
ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this,R.array.gender, R.layout.support_simple_spinner_dropdown_item);
arrayAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
genderspinner.setAdapter(arrayAdapter);
genderspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String gendervalue = parent.getItemAtPosition(position).toString();
// Object item = parent.getItemAtPosition(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
final String gender = String.valueOf(genderspinner.getSelectedItem());
Log.i("TAG", "gender here : "+gender);
// when I run the log, it is always empty.
//final String gender = String.valueOf(genderspinner.getSelectedItem());
// genderspinner.setOnItemSelectedListener(this);
updateprofile(gender)
});
}
private void updateprofile(gender) {
// API call which sends the gender data
}
}
【问题讨论】:
-
在下面试试我的答案
-
谢谢。有效。我很愚蠢,我错过了声明全局变量的单一逻辑。再次感谢你。 @Thunder 和 Ansh Kareliya
标签: android android-studio spinner android-spinner