如何从片段适配器启动StartAcitivity

时间:2012-08-05 11:24:36

标签: android adapter fragment

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

2 个答案:

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

        }
    });