【问题标题】: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);
        */
    }
});

【问题讨论】:

    标签: android adapter fragment


    【解决方案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);
      
              }
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多