从 OnItemSelectedListener 调用值
Calling value from OnItemSelectedListener
我使用 spinner.setOnItemSelectedListener()
将微调器中所选项目的值传递给字符串变量 'selectedSpinner'。我正在尝试在方法之外访问 'selectedSpinner'。
我试图将 'selectedSpinner' 分配给另一个字符串 'selectedCategory' 但在 spinner.setOnItemSelectedListener()
方法,'selectedSpinner'无法解析。在方法之外访问 'selectedSpinner' 应该怎么做?谢谢
private void recordDialog() {
...
//get category
final Spinner spinner = subView.findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedSpinner = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
final String selectedCategory = selectedSpinner;
...
final AlertDialog alertDialog = builder.create();
alertDialog.show();
}
您需要在 recordDialog
函数外声明 selectedSpinner
(或将其设置为全局)
String selectedSpinner;
...
private void recordDialog() {
......
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedSpinner = parent.getItemAtPosition(position).toString();
}
}
之后您可以将 selectedSpinner
分配给 selectedCategory
。
我使用 spinner.setOnItemSelectedListener()
将微调器中所选项目的值传递给字符串变量 'selectedSpinner'。我正在尝试在方法之外访问 'selectedSpinner'。
我试图将 'selectedSpinner' 分配给另一个字符串 'selectedCategory' 但在 spinner.setOnItemSelectedListener()
方法,'selectedSpinner'无法解析。在方法之外访问 'selectedSpinner' 应该怎么做?谢谢
private void recordDialog() {
...
//get category
final Spinner spinner = subView.findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedSpinner = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
final String selectedCategory = selectedSpinner;
...
final AlertDialog alertDialog = builder.create();
alertDialog.show();
}
您需要在 recordDialog
函数外声明 selectedSpinner
(或将其设置为全局)
String selectedSpinner;
...
private void recordDialog() {
......
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedSpinner = parent.getItemAtPosition(position).toString();
}
}
之后您可以将 selectedSpinner
分配给 selectedCategory
。