मैं एक सरल एडाप्टर व्यू के अपने कार्यान्वयन के लिए (सीखने के उद्देश्यों के लिए) बनाने की कोशिश कर रहा हूं जहां आइटम मूल एडाप्टर (एसडीके नमूने से छवि एडाप्टर) से आता है।एडाप्टर व्यूइंग
वास्तविक कोड इस तरह है:
public class MyAdapterView extends AdapterView<ImageAdapter> implements AdapterView.OnItemClickListener{
private ImageAdapter mAdapter;
public MyAdapterView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initThings();
}
private void initThings(){
setOnItemClickListener(this);
}
@Override
public ImageAdapter getAdapter() {
// TODO Auto-generated method stub
return mAdapter;
}
@Override
public void setAdapter(ImageAdapter adapter) {
// TODO Auto-generated method stub
mAdapter=adapter;
requestLayout();
}
View obtainView(int position) {
View child = mAdapter.getView(position, null, this);
return child;
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
for(int i=0;i<mAdapter.getCount();i++){
View child = obtainView(i);
child.layout(10, 70*i, 70, 70);
addViewInLayout(child, i, null, true);
}
this.invalidate();
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Log.d("MYEXAMPLES","Clicked an item!");
}
}
यह एक कोडिंग कृति नहीं है, यह सिर्फ चित्रों के साथ एक छद्म सूचीदृश्य प्रदर्शित करता है। मुझे पता है कि मैं ListView, GridView, Spinner, आदि का उपयोग कर सकता था लेकिन मैं एंड्रॉइड के लिए नया सापेक्ष हूं और मैं इस पर कुछ चीजों को समझने की कोशिश कर रहा हूं।
ठीक है, सवाल यह है: मेरा पर itemClick फ़ायरिंग क्यों नहीं है?
एक ग्रिड व्यू के साथ एक ही छवि एडाप्टर का उपयोग करके, सब कुछ ठीक काम करता है, लेकिन जब मैं उपरोक्त वर्ग के साथ उपयोग करता हूं, तो मुझे कुछ भी नहीं मिलता है। अंदर एडाप्टर व्यू.जावा उन क्लिक, लांगक्लिक इत्यादि के लिए कोड है ... तो मैं उन्हें क्यों नहीं फेंक सकता? शायद मैं एडाप्टर व्यू कैसे काम करता है इस बारे में बुनियादी चीजों को गलत समझ रहा हूं? क्या मुझे इसके बजाय अन्य आधार वर्गों का विस्तार करना चाहिए? और क्यों?
यहां पर अधिक अनुभवी मार्गदर्शन खोजने की उम्मीद है, अग्रिम धन्यवाद।
क्या आपको समाधान मिल गया है ?? – Riser