簡體   English   中英

在 Android 的 Spinner 中選擇項目時如何從 ROOM 數據庫中獲取特定數據

[英]How to get specific data from ROOM database when an item is selected in Spinner in Android

我有一個學生實體,它包含學生姓名、學生手機號碼。 我正在使用學生姓名添加學生記錄,我在添加新記錄時從微調器中選擇學生姓名。 所以我的問題是當我選擇學生姓名時,我想在我的微調器下方的 textview 中獲取該特定學生的手機號碼。

這就是我在微調器中獲取所有名稱的方式

 private void loadSpinnerData() {
        studentViewModel = ViewModelProviders.of(this).get(StudentViewModel.class);
        studentViewModel.getAllStudents().observe(this, new Observer<List<Student>>() {
            @Override
            public void onChanged(List<Student> students) {
                String[] nameLists = new String[students.size()];
                for (i = 0; i < students.size(); i++) {
                    nameLists[i] = students.get(i).getStudentName() + " " + students.get(i).getStudentFatherName() +
                            " " + students.get(i).getStudentSurname();
                }
                ArrayAdapter<String> studentNames = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, nameLists);
                studentNames.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                selectStudentName.setAdapter(studentNames);
            }
        });

    }

這是我的微調適配器

selectStudentName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(final AdapterView<?> adapterView, View view, final int position, long l) {
                if ( position == -1 ) {
                    Toast.makeText(AddRecord.this, "No record is selected", Toast.LENGTH_SHORT).show();
                } else {
                    String name = adapterView.getItemAtPosition(position).toString();
                    Toast.makeText(AddRecord.this, name + " is selected", Toast.LENGTH_SHORT).show();
                   for (int i = 0; i < adapterView.getCount(); i++ ){

                   }
                }
            }

如何獲取所選學生姓名的手機號碼? 謝謝 !

簡單,親愛的,只需使用您的視圖模型類對象(studentViewModel)來獲取這樣的實時數據實例-

selectStudentName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(final AdapterView<?> adapterView, View view, final int position, long l) {
                if ( position == -1 ) {
                    Toast.makeText(AddRecord.this, "No record is selected", Toast.LENGTH_SHORT).show();
                } else {
                    String studentMobileNumber = studentViewModel.getAllStudents().getValue().get(position).getMobileNumber()

                }
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM