也許我只是爲了好奇而問錯誤的問題。我通過擴展陣列適配器來創建自定義適配器。現在我想在GridView中顯示它。我經歷了許多文章,並且在任何地方我發現他們只使用基本適配器來顯示GridView。請大家告訴我這背後的邏輯是什麼?我們可以使用陣列適配器代替基礎適配器嗎?GridView通過使用自定義ArrayAdapter
回答
是的,我們可以。 ArrayAdpter
本身從BaseAdapter
延伸。可能是這種情況搞清楚http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/widget/ArrayAdapter.java#ArrayAdapter
在-事實上,如果你只是想顯示ListView
或GridView
一些東西,不需要任何複雜的自定義適配器那麼它更容易只需使用一個ArrayAdapter
。它只是一個由任意對象數組支持的適配器。
你當然可以在GridView中使用ArrayAdapter。看到此的代碼示例
gridView = (GridView) findViewById(R.id.gridView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, numbers);
gridView.setAdapter(adapter);
但是可以使用'ArrayAdapter'將照片加載到'GridView'中嗎?您提供的代碼使用'simple_list_item_1',這是一個'TextView'佈局。我試圖找到一種方法來使用'ArrayAdapter',但上傳圖像,沒有文字。 – Azurespot
您可以使用自定義適配器這個博客http://www.mkyong.com/android/android-gridview-example/解釋 –
謝謝,但該博客只覆蓋'GridView'中的簡單文本'字符串'。圖像是一個完整的東西,因爲我在學習,你需要一個模型,並將其改變爲'位圖'等等...... :( – Azurespot
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);
}
}
我用這個增加圖象和文本在網格視圖。 網格視圖膨脹的佈局包含一個imageView和一個textView。
- 1. 使用自定義ArrayAdapter進行過濾
- 2. 自定義ArrayAdapter自定義過濾器
- 3. GridView中ArrayAdapter的自定義篩選器
- 4. 使用ArrayAdapter設置具有自定義視圖的GridView
- 5. 自定義ArrayAdapter onLongClickListener
- 6. AutoCompleteTextView無法使用自定義ArrayAdapter
- 7. 使用自定義ArrayAdapter時獲取ClassCastException
- 8. 自定義ListView使用ArrayAdapter,OnClick事件
- 9. 自定義ArrayAdapter的ListActvity過濾器
- 10. 自定義ArrayAdapter過濾時未更新
- 11. 在ListView中自定義過濾ArrayAdapter
- 12. 通過自定義通道使用OpenSSL
- 13. 沒有結果使用自定義的ArrayAdapter和過濾
- 14. 如何使用ArrayAdapter爲ListView編寫自定義過濾器
- 15. ListView與自定義ArrayAdapter
- 16. 自定義ArrayAdapter拋出NullPointerException
- 17. ListFragment中的自定義ArrayAdapter
- 18. 與listFragment自定義arrayAdapter
- 19. 自定義ArrayAdapter不工作?
- 20. 使用ArrayAdapter的GridView SQLite
- 21. 使用自定義ArrayAdapter填充GridView將不會加載第一次(asynktask)
- 22. 自定義Gridview
- 23. 自定義UIViewController通過使用自定義segue類TransitionTo
- 24. getView()沒有被自定義ArrayAdapter調用
- 25. ListView:setItemChecked只適用於標準ArrayAdapter - 在使用自定義ArrayAdapter時不起作用?
- 26. 使用Like Keyword-GridView自定義篩選
- 27. 使用GridView自定義分頁
- 28. 定製的Android的ListView項目使用自定義ArrayAdapter
- 29. android gridview自定義
- 30. 使用存儲過程在ASP Gridview中自定義分頁
我的疑問是,如果我將使用擴展數組適配器的自定義適配器,所以只有在佈局文件中,我將不得不做從ListView到GridView的更改。我對嗎?? – rup35h
您可以對'GridView'或'ListView'使用相同的適配器。所以是的,你只需要改變佈局以及你調用'setAdapter()'的地方。 –