1

我有一个带有自定义适配器的列表片段。这个适配器有一个图像的 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);
        */
    }
});
4

2 回答 2

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);

            }
        });
于 2012-08-07T07:51:19.567 回答
0

如果您在 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);

        }
    });
于 2012-08-07T08:05:30.010 回答