2016-10-25 3 views
0

I Anzeige mehrreihige in der RecyclerView und der Oberseite des einen Filter haben wählen Sie den Filter mit der Spinner öffnen und wählen Sie die Spinner Artikel nur ausgewählte Liste zu öffnen, wie zeigen
im neu in android ProgrammierungSpinner ausgewählte Element neues Array-Liste öffnen Datenbank mit android

Meine Klasse

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) { 

} 

Antwort

1

im onItemSelected Methode können Sie die sel abrufen Filter mit position Parameter aus Ihren Spinnerdaten (hier die List lables). Dann wieder bevölkern Ihre recylcer adadpter und adapter.notifyDataSetChanged() rufen Sie die Ansicht wie folgt zu aktualisieren:

@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(); 
} 
+0

irgendein Beispiel @ Francois L. – Joy

+0

das letzte Update Hilfe Haben Sie? –

Verwandte Themen