Здравствуйте. Имеется выпадающий список(spinner) данные в этом выпадающем списке берутся из базы данных. Вопрос, как при нажатии по любому элементу из выпадающего списка получить его поля id из базы данных. P.s если что, то БД реализована с помощью sugar orm.
Код:
package com.example.andrei.tetsbd;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import static android.R.attr.author;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView texthello = (TextView) findViewById(R.id.hello);
//Запись в БД
Year_inv Year = new Year_inv("03.02.2017");
Year.save();
//Получение id из бд и вывод его на экран через textView(ради теста)
List<Year_inv> year_inv = Year_inv.findWithQuery(Year_inv.class, "Select ID from Yearinv where date = ?", "03.02.2017");
String adasdasdasd = "";
adasdasdasd += year_inv;
texthello.setText(adasdasdasd);
}
//Получение данных из БД и занесение в массив "test"
final ArrayList test= new ArrayList();
for (int i = 0; i < years.size(); i++) {
Year_inv date = years.get(i);
test.add(date.date + "\n");
}
//Реализация выпадающего списка и заполнение его данными из БД
Spinner spin = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, test);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
}
}
Как я понимаю у вас будет чтот в роде ArrayList<Ваш класс>. Вам нужно просто по выбранному полю заполнить отдельный string-array, и использовать в качестве адаптера. И при нажатия по списку, вы будете знать какой элемент выбран по номеру.
String[] statistika_string;
spinner_statistika = (Spinner) view.findViewById(R.id.spinner_statistika);
// адаптер
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, statistika_string);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_statistika.setAdapter(adapter);
// выделяем элемент
spinner_statistika.setSelection(0);
spinner_statistika.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapte
rView, View view, int i, long l) {
// Your code here
int n = spinner_statistika.getSelectedItemPosition(); //получаю позицию
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости