如何从片段适配器启动活动
Posted
技术标签:
【中文标题】如何从片段适配器启动活动【英文标题】:How to StartAcitivity from a fragment adapter 【发布时间】:2012-08-02 16:46:48 【问题描述】:我有一个带有自定义适配器的列表片段。这个适配器有一个图像的 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);
*/
);
【问题讨论】:
【参考方案1】:为仍在寻找答案的人参考下面的代码
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);
);
【讨论】:
【参考方案2】:如果您在 Activity 类之外调用 startActivity(),则必须将标志设置为新的 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);
);
【讨论】:
以上是关于如何从片段适配器启动活动的主要内容,如果未能解决你的问题,请参考以下文章