微调器选择项目以使用数据库 android 打开新数组列表
spinner selected item to open new array list using database android
我在 RecyclerView
和一个过滤器 select 的顶部显示多行,过滤器打开 Spinner
和 select Spinner
项目仅打开 selected 列表如何显示
我是 android 编程的新手
我的class
private List<People> peolesListAll = new ArrayList<>();
private RecyclerView recyclerView;
private AlertAllCustomeAdapter alertAllCustomAdapter;
private DataBaseHelper db;
Spinner spinner;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alertlist_all);
BuildData();
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
spinnerData();
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
alertAllCustomAdapter = new AlertAllCustomeAdapter(this, peolesListAll);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(alertAllCustomAdapter);
alertAllCustomAdapter.notifyItemRangeChanged(0, alertAllCustomAdapter.getItemCount());
private void spinnerData() {
db = new DataBaseHelper(getApplicationContext());
List<String> lables = db.getAllLabels();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// lables.set(0, "ALL");
spinner.setAdapter(dataAdapter);
}
private List<People> BuildData() {
db = new DataBaseHelper(getApplicationContext());
try {
db.createDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
if (db.open()) {
peolesListAll = db.getAllPeople();
}
return peolesListAll;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
在 onItemSelected
方法中,您可以使用 position
参数从微调器数据(此处为列表标签)中检索选定的过滤器。然后,重新填充您的 recylcer 适配器并调用 adapter.notifyDataSetChanged()
来更新视图,如下所示:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String filter = (String) spinner.getAdapter().getItem(position);
// update your peolesListAll according to the selected filter (with loop or anything else)
alertAllCustomAdapter.setData(peolesListAll) // write setData(List<People> data)
alertAllCustomAdapter.notifyDataSetChanged();
}
我在 RecyclerView
和一个过滤器 select 的顶部显示多行,过滤器打开 Spinner
和 select Spinner
项目仅打开 selected 列表如何显示
我是 android 编程的新手
我的class
private List<People> peolesListAll = new ArrayList<>();
private RecyclerView recyclerView;
private AlertAllCustomeAdapter alertAllCustomAdapter;
private DataBaseHelper db;
Spinner spinner;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alertlist_all);
BuildData();
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
spinnerData();
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
alertAllCustomAdapter = new AlertAllCustomeAdapter(this, peolesListAll);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(alertAllCustomAdapter);
alertAllCustomAdapter.notifyItemRangeChanged(0, alertAllCustomAdapter.getItemCount());
private void spinnerData() {
db = new DataBaseHelper(getApplicationContext());
List<String> lables = db.getAllLabels();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// lables.set(0, "ALL");
spinner.setAdapter(dataAdapter);
}
private List<People> BuildData() {
db = new DataBaseHelper(getApplicationContext());
try {
db.createDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
if (db.open()) {
peolesListAll = db.getAllPeople();
}
return peolesListAll;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
在 onItemSelected
方法中,您可以使用 position
参数从微调器数据(此处为列表标签)中检索选定的过滤器。然后,重新填充您的 recylcer 适配器并调用 adapter.notifyDataSetChanged()
来更新视图,如下所示:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String filter = (String) spinner.getAdapter().getItem(position);
// update your peolesListAll according to the selected filter (with loop or anything else)
alertAllCustomAdapter.setData(peolesListAll) // write setData(List<People> data)
alertAllCustomAdapter.notifyDataSetChanged();
}