Android. Как получить выбранное значение элемента из счетчика и поместить его в строку?
Я читал много похожих вопросов по этой теме, но никто из них не помогает мне...
Это мой код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.imc_spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.imc_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
}
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
// An item was selected. You can retrieve the selected item using
imc_met = parent.getItemAtPosition(pos).toString();
}
Объявляю imc_met как public String imc_met;
. Проблема заключается в том, что imc_met не содержит значения выбранного элемента счетчика, но это значение null...
Где проблема?
спасибо заранее.
Ответы
Ответ 1
Использование:
imc_met = Spinner.getSelectedItem() ToString();.
Вместо
imc_met = parent.getItemAtPosition(pos).toString();
Обновлено:
Кажется, вы неправильно назначаете прослушиватель вашему счетчику, сделайте что-то вроде ниже:
spin.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String imc_met=spin.getSelectedItem().toString();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
Ответ 2
Попробуйте следующее:
imc_met=Spinner.getSelectedItem().toString();
Прости. Я забыл
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
imc_met=Spinner.getSelectedItem().toString();
}
}
Ответ 3
является
imc_met=spinner.getSelectedItem().toString();
не
imc_met=spinner.getSelectedItem().toString();
Ответ 4
int position = Arrays.asList(getResources().getStringArray(R.array.country_value_array)).indexOf(address.getCountry());
Это значение получит индекс по значению.
Ответ 5
Если spinner не определяется в методе onCreate(), тогда необходимо использовать это:
String spinner_value = ((Spinner)findViewById(R.id.spinner1)).getSelectedItem().toString();
Ответ 6
Попробуйте использовать этот код в методе onCreate()
:
spinner.setOnItemSelectedListener(this);