【发布时间】:2020-12-05 00:52:16
【问题描述】:
你好,你们能帮帮我吗?
我正在做一个应用程序,它将显示场所。用户还可以使用 Spinner 对其进行过滤以简化搜索。但我无法过滤 Spinner,结果似乎无法在 RecyclerView 中显示
MainActivity.java
公共类 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 之后而不是之前调用 setAdaper。
-
意思是,Spinner 的 setadapter 应该在 RecyclerView 的 setLayoutManager 之后调用是吗?
-
@ADM 我希望用户可以使用 Spinner 过滤 recyclerview,但不幸的是,在用户过滤后,它不会影响 recyclerview,抱歉英语不好
标签: java android android-studio android-recyclerview android-spinner