簡體   English   中英

如何在 Android Studio 中使用 Spinner 獲取 RecyclerView 的結果

[英]How to get Result for RecyclerView using Spinner in Android Studio

你好你們能幫幫我嗎?

我正在做一個應用程序,它將顯示場所。 用戶還可以使用 Spinner 對其進行過濾以簡化搜索。 但我無法過濾 Spinner,結果似乎無法在 RecyclerView 中顯示

MainActivity.java

公共 class MainActivity 擴展 AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent intent = getIntent();
    EditText txtPremiseSearch = findViewById(R.id.txtPremiseSearch);
    RecyclerView rcvPremise = findViewById(R.id.rcvPremises);
    Spinner spnCategory = (Spinner) findViewById(R.id.spnCategory);

    //Spinner
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.premise_type));
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spnCategory.setAdapter(adapter);

    spnCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        //txtPremiseSearch.setText(parent.getItemAtPosition(position).toString());
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

    //Dummy list of premises
    Vector<Premises> premises = new Vector<>();
    Premises premises1 = new Premises(), premises2 = new Premises(), premises3 = new Premises();

    premises1.setPremiseID("001");
    premises1.setName("Medan Selera Presint 8");
    premises1.setRole("Restaurant");

    premises2.setPremiseID("002");
    premises2.setName("Old Precint Cafe");
    premises2.setRole("Cafe");

    premises3.setPremiseID("003");
    premises3.setName("Gloria Jean's Cafe");
    premises3.setRole("Cafe");

    premises.add(premises1);
    premises.add(premises2);
    premises.add(premises3);

    Toast.makeText(this, "Welcome " + intent.getStringExtra("name") + " to the Administration module!", Toast.LENGTH_LONG).show();

    rcvPremise.setAdapter(new PremisesAdapter(this, premises));
    rcvPremise.setLayoutManager(new LinearLayoutManager(this));

在此處輸入圖像描述

可能是因為回收站視圖還沒有更新。 嘗試運行 setLayoutManager b4 setAdapter,然后再次聲明適配器並設置適配器,當用戶單擊微調器上的選定項目時

暫無
暫無

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

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