2016-05-24 7 views
-1

Ich habe mehr als eine ArrayList denke, dass ArrayList1, ArrayList2, ArrayList3 ... In ArrayList1 haben einige Bilder zeigen es in GridView Android, wenn ich auf Bilder klicken, sollte es ArrayList2 zeigen in diesem nur GridView und ArrayList2 auch Bilder. Das Gleiche gilt für ArrayList2 und ArrayList3. So erreichen Sie dasSo rufen Sie mehrere ArrayList einzeln in GridView Android

Antwort

1

Angenommen, dass alle Ihre ArrayLists den gleichen Objekttyp enthalten.

Erstellen Sie eine neue ArrayList, nennen Sie sie AdapterArrayList und verwenden Sie sie als Haupt-ArrayList für den Adapter. Wenn Sie jetzt ArrayList1, clear() Elemente von AdapterArrayList und dann addAll() die ArrayList1 verwenden möchten. und natürlich notifyDataSetChanged() für den Adapter.

Gehen Sie genauso vor, wenn Sie ArrayList2 und ArrayList3 verwenden möchten.

[Bearbeiten]

Zum Beispiel:

public class MyAdapter extends BaseAdapter { 
List<Image> mImagesList; 

    public MyAdapter(List<Image> imagesList) { 
     mImagesList = imagesList; 
     ... 
    } 
} 

Und diesen Adapter zu verwenden, um mit den Arraylisten Sie haben:

public class MyActivity extends Activity { 
    MyAdapter mAdapter; 
    List<Image> mainList = new ArrayList(); 
    List<Image> arrayList1 = new ArrayList(); 
    List<Image> arrayList2 = new ArrayList(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_activity); 
     mAdapter = new MyAdapter(mainList); 
     myListView.setAdapter(mAdapter); 
    } 

    private void switchToList1() { 
     mainList.clear(); 
     mainList.addAll(arrayList1); 
     mAdapter.notifyDataSetChanged(); 
    } 

    private void switchToList2() { 
     mainList.clear(); 
     mainList.addAll(arrayList2); 
     mAdapter.notifyDataSetChanged(); 
    } 
} 
+0

@AbdallalhAlaraby mir ein Beispiel oder Code so etwas geben, dass ich kann sich beziehen –

+0

@AbdallalhAlaraby wie kann ich ID des ausgewählten Gitterelements zum nächsten Gitter schicken? –

+0

Dies ist eine ganz andere Frage, die einen eigenen Thread haben sollte. Wie auch immer, Sie können in der 'getView()' Methode des Adapters einen 'OnClickListener' definieren. Überprüfen Sie [diesen Link] (http://stackoverflow.com/questions/20191914/how-to-add-gridview-setonitemclicklistener) –

Verwandte Themen