我有一个带有自定义适配器的列表片段。此适配器具有图像的onClick事件,其中我想要启动新的意图(活动)。我无法做到这一点。
任何人都可以帮我解释一下代码。
viewholder.gMaps = (ImageView) convertView.findViewById(R.id.imgMaps);
viewholder.gMaps.setClickable(true);
viewholder.gMaps.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.v(LOG_TAG, "Not sure how do I start an Activity");
/*
Intent intent = new Intent().setClass(((ListViewFragment) context), GMaps.class);
intent.putExtra("Longitude", mList.get(holder.position).get("Longitude").toString());
intent.putExtra("Latitude", mList.get(holder.position).get("Latitude").toString());
startActivity(intent);
*/
}
});
答案 0 :(得分:2)
请参阅以下代码,了解仍在搜索答案的人
holder.gMaps.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent().setClass(v.getContext(), GMaps.class);
intent.putExtra("Longitude", mList.get(holder.position).get("Longitude").toString());
intent.putExtra("Latitude", mList.get(holder.position).get("Latitude").toString());
v.getContext().startActivity(intent);
}
});
答案 1 :(得分:0)
如果在Activity类之外调用startActivity(),则必须将setflag设置为新的Activity。
holder.gMaps.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent().setClass(v.getContext(), GMaps.class);
intent.putExtra("Longitude", mList.get(holder.position).get("Longitude").toString());
intent.putExtra("Latitude", mList.get(holder.position).get("Latitude").toString());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
v.getContext().startActivity(intent);
}
});