I have a ListFragmentA being implemented by my MainActivity(which also Overrides onListItemClick and is needed). The CustomArrayAdapter has two images and 3 textViews. Everything works fine except when I make one of my images "Clickable=onEditDelete". The method onEditDelete can not be found in ListFragmentA but IS found when I move the method to MainActivity.
I would like to understand why this happens ? Once the image is made clickable does it not belong to the ListFragment anymore ?
What is the best way to get index of the clicked image in the cell if the method can only be found in MainActiviy ?
-Thanks You.
public class MainActivity extends BaseActivity {
public void goEditDelete(View ed) {
Log.d("myLog", "edit ******************* Item prod clicked: ");
}
}
public class CustomListViewAdapter extends ArrayAdapter<RowItem> {
Context context;
public CustomListViewAdapter(Context context, int resourceId, List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
}
/*private view holder class*/
private class ViewHolder {
ImageView imageView;
TextView txtTitle;
TextView txtSubTitle;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
RowItem rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.row_title);
holder.txtSubTitle = (TextView) convertView.findViewById(R.id.row_subTitle);
holder.imageView = (ImageView) convertView.findViewById(R.id.row_icon); // make clickable ****************
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtSubTitle.setText(rowItem.getsubTitle());
holder.txtTitle.setText(rowItem.getTitle());
holder.imageView.setImageResource(rowItem.getImageId());
return convertView;
}
}
public class MainView extends SherlockListFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// chekc data before hand
Log.e("myLog", "SAVED Data1 ListSize = " + myProdArrayHash.size());
for (int i = 0; i < myProdArrayHash.size(); i++) {
Log.e("myLog", "SAVED DataLoooop = "+ myProdArrayHash.get(i).toString());
}
//
// Keys used in Hashmap
String[] from = {"editIcon", "prod", "dist", "repEmail","repPhone"};
// Ids of views in listview_layout
int[] to = {R.id.row_icon, R.id.row_title, R.id.row_subTitle, R.id.tvRepEmail, R.id.tvRepCell};
// Instantiating an adapter to store each items
adapter = new SimpleAdapter(getActivity(), myProdArrayHash, R.layout.row, from, to);
// Getting a reference to listview of main.xml layout file
setListAdapter(adapter);
// double heck
Log.d("myDataCheck_storedItems", " sizeOfCurrentData() MainViewFrag onStart() END= " + sizeOfCurrentData());
}
}