在每个列表视图单击上打开不同的活动 [英] Open different activities on each listview click
本文介绍了在每个列表视图单击上打开不同的活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在将OnClickListener设置为列表视图时遇到问题. 单击不同的列表视图项时,我想打开不同的活动.但是我无法完成它.任何帮助表示赞赏.
I am having problem setting OnClickListener to my listview. I want to open different activities when different listview item is being clicked. But i am not able to get it done. Any help is Appreciated.
我的活动
public class ListviewActivity extends AppCompatActivity {
private ListView listview;
int number = 1;
private int image;
private String title;
private String description;
private String price;
public int[] IMAGE = {R.drawable.white, R.drawable.white, R.drawable.white, R.drawable.white, R.drawable.white, R.drawable.white, R.drawable.white, R.drawable.white};
public String[] TITLE = {"A","B","C","D","E","F","G","H"};
public String[] DESCRIPTION = {"CEO", "CEO", "CEO", "CEO", "CEO", "CEO","CEO","CEO"};
private ArrayList<BeanClassForListView> beanClassArrayList;
private listViewAdapter listViewAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_listview);
listview = (ListView) findViewById(R.id.listview);
beanClassArrayList = new ArrayList<BeanClassForListView>();
for (int i = 0; i < TITLE.length; i++) {
BeanClassForListView beanClass = new BeanClassForListView(IMAGE[i], TITLE[i], DESCRIPTION[i]);
beanClassArrayList.add(beanClass);
}
listViewAdapter = new listViewAdapter(ListviewActivity.this, beanClassArrayList);
listview.setAdapter(listViewAdapter);
}
}
我的Listview适配器
My Listview Adapter
public class listViewAdapter extends BaseAdapter {
private Context context;
private ArrayList<BeanClassForListView> beanClassArrayList;
public listViewAdapter(Context context, ArrayList<BeanClassForListView> beanClassArrayList) {
this.context = context;
this.beanClassArrayList = beanClassArrayList;
}
@Override
public int getCount() {
return beanClassArrayList.size();
}
@Override
public Object getItem(int position) {
return beanClassArrayList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHoder viewHoder;
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.listview, parent, false);
viewHoder = new ViewHoder();
viewHoder.banar1 = (ImageView) convertView.findViewById(R.id.banar1);
viewHoder.title = (TextView) convertView.findViewById(R.id.title);
viewHoder.description = (TextView) convertView.findViewById(R.id.description);
convertView.setTag(viewHoder);
} else {
viewHoder = (ViewHoder) convertView.getTag();
}
//NavigationItems rowItem = (NavigationItems) getItem(position);
BeanClassForListView beanClass = (BeanClassForListView) getItem(position);
viewHoder.title.setText(beanClass.getTitle());
viewHoder.description.setText(beanClass.getDescription());
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), beanClass.getImage());
viewHoder.banar1.setImageBitmap(getRoundedCornerBitmap(bitmap, 20));
// viewHoder.plus.setImageResource(beanClass.getImage());
// viewHoder.min.setImageResource(beanClass.getImage());
//viewHoder.no.setText(beanClass.getNo());
return convertView;
}
private class ViewHoder{
ImageView banar1;
TextView title;
TextView description;
}
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = pixels;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}}
BeanClassForListView
BeanClassForListView
public class BeanClassForListView {
private int image;
private String title;
private String description;
public BeanClassForListView(int image, String title, String description) {
this.image = image;
this.title = title;
this.description = description;
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}}
推荐答案
convertView = layoutInflater.inflate(R.layout.listview, parent, false);
在其下方添加
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (position == 1){
getActivity().startActivity(new Intent(MainActivity.this,secondActivity.class));
}else if (position == 2){
getActivity().startActivity(new Intent(MainActivity.this,secondActivity.class));
}else if (position == 3){
getActivity().startActivity(new Intent(MainActivity.this,secondActivity.class));
}
}
});
这篇关于在每个列表视图单击上打开不同的活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文