I have a listview with a custom adapter in listfragment, as well as set onclicklistner for listview. But Onclicklistner does not work.
Here is my code:
public class BasicFragment extends ListFragment { ListView lv; MyCustomAdapter adapter; @Override public void onCreate(Bundle si) { super.onCreate(si); } @Override public void onActivityCreated(Bundle b) { super.onActivityCreated(b); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_basic, container, false); lv = (ListView) view.findViewById(android.R.id.list); FetchedData DT = FetchedData.StaticDataTransfer(); RecepiesProperties[] AryObjaz = DT.getData(); getdata(AryObjaz); adapter = new MyCustomAdapter(getActivity(), R.layout.listview_layout, Dataset); lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast t = Toast.makeText(getActivity(), "Message", Toast.LENGTH_SHORT); t.show(); } }); return view; }}
MyCustomAdapter.java
public class MyCustomAdapter extends ArrayAdapter<Recipes> { Context context; int layoutResourceId; Recipes data[] = null; Typeface typeface; public ImageLoader imageLoader; public MyCustomAdapter(Context context, int textViewResourceId, Recipes[] dataset) { super(context, textViewResourceId, dataset); this.layoutResourceId = textViewResourceId; this.context = context; this.data = dataset; imageLoader = new ImageLoader(context.getApplicationContext()); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; LayoutInflater inflater = ((Activity) context).getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); RecipesHolder holder = new RecipesHolder(); holder.imgIcon = (ImageView) row.findViewById(R.id.imageView1); holder.txtTitle = (TextView) row.findViewById(R.id.title); holder.category = (TextView) row.findViewById(R.id.category); holder.source = (TextView) row.findViewById(R.id.source); holder.country = (TextView) row.findViewById(R.id.country); holder.readytime = (TextView) row.findViewById(R.id.readytime); holder.tips = (Button) row.findViewById(R.id.tips); holder.fav = (Button) row.findViewById(R.id.fav); Recipes ap = data[position]; imageLoader.DisplayImage(ap.getIMAGENAME240(), holder.imgIcon); holder.txtTitle.setText(ap.getNAME()); holder.category.setText(ap.getCATEGORY()); holder.source.setText(ap.getSOURCE()); holder.country.setText(ap.getCOUNTRY()); holder.readytime.setText(ap.getREADYTIME()); return row; } static class RecipesHolder { ImageView imgIcon; TextView txtTitle; TextView category; TextView source; TextView country; TextView readytime; Button tips; Button fav; }}
//listview_layout.xml
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"><ImageView android:id="@+id/imageView1" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:focusable="true" android:layout_alignParentTop="true" android:layout_marginLeft="5dp" android:layout_marginTop="10dp" /> <TextView android:id="@+id/readytime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/country" android:layout_alignBottom="@+id/country" android:layout_marginLeft="73dp" android:layout_toRightOf="@+id/country" android:focusable="true" android:text="TextView" android:textColor="#000" /> <TextView android:id="@+id/country" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/imageView1" android:layout_alignLeft="@+id/source" android:focusable="true" android:text="TextView" android:textColor="#000" /> <TextView android:id="@+id/source" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/country" android:layout_alignLeft="@+id/category" android:focusable="true" android:text="TextView" android:textColor="#000" /> <TextView android:id="@+id/category" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/source" android:layout_alignLeft="@+id/title" android:text="TextView" android:focusable="true" android:textColor="#000" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/category" android:layout_toRightOf="@+id/imageView1" android:text="TextView" android:focusable="true" android:textColor="#000" /> <Button android:id="@+id/fav" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/tips" android:layout_below="@+id/source" android:focusable="true" android:background="@drawable/favourite" /> <Button android:id="@+id/tips" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/textView1" android:layout_marginRight="14dp" android:background="@drawable/yellow" /></RelativeLayout>
source share