5

Vielleicht stelle ich die falsche Frage nur aus Neugier. Ich erstelle den benutzerdefinierten Adapter, indem ich den Array-Adapter erweitere. Jetzt möchte ich das in GridView anzeigen. Ich habe viele Artikel durchgesehen und überall habe ich festgestellt, dass sie nur den Basisadapter verwenden, um GridView anzuzeigen. Bitte sagt mir, was ist die Logik dahinter? Können wir den Array-Adapter anstelle des Basisadapters verwenden?GridView mit benutzerdefinierten ArrayAdapter

Antwort

3

Ja können wir. ArrayAdpter selbst erstreckt sich von BaseAdapter. sein einfache, nur ein ArrayAdapter verwenden kann sein, diese Dinge http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/widget/ArrayAdapter.java#ArrayAdapter

In-Tatsache wird klar, wenn man nur versuchen, ein paar Sachen in ListView oder GridView zu zeigen, dass kein komplexen kundenspezifische Adapter benötigt dann. Es ist nur ein Adapter, der von einem Array beliebiger Objekte unterstützt wird.

+0

meine Zweifel ist, wenn ich benutzerdefinierte Adapter verwenden, die Array-Adapter erweitert, so nur in Layout-Datei muss ich die Änderung von ListView zu GridView tun. Habe ich recht?? – rup35h

+0

Sie können denselben Adapter für 'GridView' oder' ListView' verwenden. Sie müssen also nur das Layout ändern und auch 'setAdapter()' aufrufen. –

2

Sie können sicherlich ArrayAdapter in GridView verwenden. finden Sie in diesem Codebeispiel

gridView = (GridView) findViewById(R.id.gridView1); 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, numbers); 

gridView.setAdapter(adapter); 

for more detail

+0

Aber ist es möglich, Fotos mit 'ArrayAdapter' in' GridView' zu laden? Der Code, den Sie angegeben haben, verwendet ein 'simple_list_item_1', ein' TextView'-Layout. Ich versuche einen Weg zu finden, 'ArrayAdapter' zu verwenden, aber Bilder, keinen Text hochzuladen. – Azurespot

+0

Sie können benutzerdefinierte Adapter dieses Blog verwenden http://www.mkyong.com/android/android-gridview-example/ erklärt –

+0

Danke, aber das Blog deckt nur einfache Text 'String' in einem' GridView'. Bilder sind eine ganz andere Sache, während ich lerne, Sie brauchen ein Modell und Dinge in "Bitmap", etc ... ändern :( – Azurespot

0
public class GridAdapter extends ArrayAdapter implements OnItemClickListener 
    { 
     Context c; 
     int[] img; 
     String[] p; 
     public GridAdapter(Context context, int[] img1,String[] s1) { 
      super(context,R.layout.forgridmain,R.id.textViewgd1,s1); 
      img=img1; 
      c=context; 
      p=s1; 
     } 
     public View getView(int position,View ConvertView,ViewGroup parent) 
     { 
      LayoutInflater inflater=(LayoutInflater)c.getSystemService(LAYOUT_INFLATER_SERVICE); 
      ConvertView =inflater.inflate(R.layout.forgridmain, parent, false); 
      ImageView iv1=(ImageView) ConvertView.findViewById(R.id.imageView111); 
      TextView tv=(TextView)ConvertView.findViewById(R.id.textViewgd1); 
      RelativeLayout rl=(RelativeLayout)ConvertView.findViewById(R.id.relalypout); 
      rl.setBackgroundColor(Color.TRANSPARENT); 
      iv1.setImageURI(Uri.parse("android.resource://"+getPackageName()+"/drawable/"+img[position])); 
      tv.setText(p[position]); 
      gv.setOnItemClickListener(ga); 
      return ConvertView; 

     } 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 

      Intent trans=new Intent(MainActivity.this,Listed.class); 
      trans.putExtra("first",p[arg2]); 
      startActivity(trans); 
     } 


    } 

ich dies zum Hinzufügen von Bildern und Text in einem Raster-Ansicht. Das Layout, das die Rasteransicht aufbläst, enthält ein imageView und ein textView.

Verwandte Themen