I have two activities which each contains a list view. I have successfully populated first listview via a customAdapter. The second list view (in second activity) has an almost identical layout (only without imageView) . Now my question is do I need to create another customAdapter for second listview or there is a way to use one customAdapter for both listviews .
p.s I do not want to display the imageView in second listview
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
class MyAdapter extends BaseAdapter {
private final Context context;
private final String[][] strArray2d;
public MyAdapter(Context context, String[][] Array2d) {
this.context = context;
this.strArray2d = Array2d;
}
@Override
public int getCount() {
return strArray2d.length;
}
@Override
public Object getItem(int position) {
return strArray2d[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String[] strInnerArray = strArray2d[position]; // Extract innerArray[] from two dimensional strArray2d[][]
View rowView;
if (convertView == null) { // if it's not recycled, initialize some attributes
LayoutInflater theInflater = LayoutInflater.from(context);
rowView = theInflater.inflate(R.layout.row_layout, parent, false);
} else {
rowView = convertView;
}
ImageView star = (ImageView) rowView.findViewById(R.id.star);
TextView Id = (TextView) rowView.findViewById(R.id.RowId);
TextView BNBNumber = (TextView) rowView.findViewById(R.id.RowBNBnumber);
TextView title = (TextView) rowView.findViewById(R.id.RowTitle);
int isFavorite = Integer.parseInt(strInnerArray[3]);
if (isFavorite == 1) {
star.setImageResource(R.drawable.tick);
}
Id.setText(strInnerArray[0]);
BNBNumber.setText(strInnerArray[2]);
title.setText(strInnerArray[1]);
return rowView;
}
}
Well, try using a flag in your constructor for adapter. If the flag value is true than show the imageview otherwise set imageview visibility to "gone".
SO, in first activity you will be passing value true to adapter constructor and in second activity you will pass false.