如何将Intent(打开浏览器)添加到ArrayList

时间:2017-11-22 20:20:49

标签: java android android-intent onclicklistener

我想添加onClickListener Intent来打开一个到ArrayList的链接。

我上课了:

public class Element {
    private String mNazwa;
    private String mOpis;
    private Intent mIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
    private int mImageResourceId;

    public Element (String nazwa, String opis, int imageResourceId, int link, Intent intent) {
       mNazwa = nazwa;
       mOpis = opis;
       mIntent = intent;
       mImageResourceId = imageResourceId;
   }

   public String getNazwa() {return mNazwa;}
   public String getOpis() {return mOpis;}
   public int getIntent() {return mIntent;}
   public int getmImageResourceId() {return mImageResourceId;}
}

我希望用以下代码在MainActivity中调用它:

final ArrayList<Element> elements = new ArrayList<Element>();
elements.add(new Element("dupa", "asdasdas", R.drawable.color_green,));
elements.add(new Element("dupa", "asdasdas", R.drawable.color_green));
elements.add(new Element("dupa", "asdasdas", R.drawable.color_green));

ElementAdapter adapter = new ElementAdapter(this, elements);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getLink);
        startActivity(browserIntent);
    }
});

你能告诉我我在哪里做错了吗?链接是一个int?怎么称呼它?

2 个答案:

答案 0 :(得分:0)

    Could you write something like this and solve?



              public class Element {
                    private String mNazwa;
                    private String mOpis;
                    private int mImageResourceId;
                    private link;

                    public Element (String nazwa, String opis, int imageResourceId, String link) {
                       mNazwa = nazwa;
                       mOpis = opis;
                       mIntent = intent;
                       this.link = link;
                       mImageResourceId = imageResourceId;
                   }

                   public String getNazwa() {return mNazwa;}
                   public String getOpis() {return mOpis;}
                   public int getmImageResourceId() {return mImageResourceId;}
                }

                public ElementAdapter extends BaseAdapter {

                private ArraList<Element> lstElement;
                public ElementAdapter (ArraList<Element> lstElement) {
                   this.lstElement = lstElement;
                } 

                public onBindViewHolder(ViewHolder holder, int position) {
                // you tag the link with the image;
holder.image.setTag(lstElement.get(position).getLink())
                }

                public onClick(View view) {
                       String tag = view.getTag().toString();
                       Intent browserIntent = new 
                       Intent(Intent.ACTION_VIEW,Uri.parse(tag);
                       startActivity(browserIntent);
                  }
         }
    }

答案 1 :(得分:0)

好的,我解决了我的问题。谢谢大家的回复。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                    Element word = elements.get(position);

                    Intent mIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(word.getUrl()));
                    startActivity(mIntent);
                }
            });
相关问题