Android 如何使用此设置McClick侦听器

Android 如何使用此设置McClick侦听器,android,listactivity,Android,Listactivity,我用它来检索项目列表并将它们放在列表中。还将为每个项目检索URL。我正在使用ListActivity // Get all td's that are a child of a row - each game has 4 of these Elements games = doc.select("tr> td.indexList1, tr > td.indexList2"); Elements links = doc.getElementsByTag

我用它来检索项目列表并将它们放在列表中。还将为每个项目检索URL。我正在使用ListActivity

// Get all td's that are a child of a row - each game has 4 of these
        Elements games = doc.select("tr>  td.indexList1, tr > td.indexList2");
        Elements links = doc.getElementsByTag("a"); // or getElementsByClass("b1");


        // Iterator over those elements     
        ListIterator<Element> postIt = games.listIterator();          
        while (postIt.hasNext()) {     
            // ...It 

            while (postIt.hasNext()) {     
                // Add the game text to the ArrayList     
                Element name = postIt.next();
                String nameString = name.text();
                String platform = postIt.next().text();
                Element url = name.select("a").first();

            //Here i retreive the url string for each item
                        String urlString = url.attr("href");

                String genre = postIt.next().text();
                String releaseDate = postIt.next().text();
                gameList.add(new GameRelease(nameString, platform, genre, releaseDate, urlString));
                Log.v(TAG, urlString);
            }

            this.setListAdapter(new GameReleaseAdapter(this, gameList));
        }         
//获取一行中的所有td-每个游戏有4个
Elements games=doc.select(“tr>td.indexList1,tr>td.indexList2”);
Elements links=doc.getElementsByTag(“a”);//或getElementsByClass(“b1”);
//对这些元素的迭代器
ListIterator posit=games.ListIterator();
while(posit.hasNext()){
//…它
while(posit.hasNext()){
//将游戏文本添加到ArrayList
元素名称=posit.next();
字符串nameString=name.text();
字符串平台=posit.next().text();
元素url=name.select(“a”).first();
//这里我检索每个项目的url字符串
字符串urlString=url.attr(“href”);
字符串类型=posit.next().text();
字符串releaseDate=posit.next().text();
添加(新游戏发布(名称字符串、平台、类型、发布日期、URL字符串));
Log.v(标记,urlString);
}
this.setListAdapter(新的GameReleaseAdapter(this,gameList));
}         
我在这里创建了自己的ArrayAdapter

private class GameReleaseAdapter extends ArrayAdapter<GameRelease> {

    private ArrayList<GameRelease> items;

    public GameReleaseAdapter(Context context,  ArrayList<GameRelease> items) {
        // TODO: make a layout for each item which you'd call (for example) itemLayout
        super(context, R.layout.item, items);
        this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO: return an item view styled however you want or as shown in the tutorial
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.row, null);

    }
        GameRelease o = items.get(position);
        TextView tt = (TextView) v.findViewById(R.id.toptext);
        TextView bt = (TextView) v.findViewById(R.id.bottomtext);
        TextView plat = (TextView)v.findViewById(R.id.platform);
        TextView genre = (TextView)v.findViewById(R.id.genre);

        tt.setText(o.getName());
        bt.setText("RELEASE DATE: " +o.getReleaseDate());
        plat.setText("PLATFORM: " + o.getPlatform());
        genre.setText("GENRE: " + o.getGenre());

        return v;

}


}   
私有类GameReleaseAdapter扩展了ArrayAdapter{
私有ArrayList项;
PublicGameReleaseAdapter(上下文、ArrayList项){
//TODO:为您要调用(例如)itemLayout的每个项目创建一个布局
超级(上下文、右布局、项目、项目);
这个项目=项目;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO:返回一个项目视图,该视图的样式为您想要的样式,或如教程所示
视图v=转换视图;
如果(v==null){
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=vi.充气(R.布局.行,空);
}
GameRelease o=物品。获取(位置);
TextView tt=(TextView)v.findViewById(R.id.toptext);
TextView bt=(TextView)v.findViewById(R.id.bottomtext);
TextView平台=(TextView)v.findViewById(R.id.platform);
TextView流派=(TextView)v.findViewById(R.id.genre);
tt.setText(o.getName());
bt.setText(“发布日期:+o.getReleaseDate());
plat.setText(“平台:+o.getPlatform());
genre.setText(“genre:+o.getGenre());
返回v;
}
}   
}

如何存储每个项目的url,以便在单击该项目时将url与额外的url一起发送到另一个活动?如何将每个项目设置为其自己的url?我怎样才能让android知道列表中的这个项目被点击了,它应该是这个特定项目的url

编辑-像这样?它给了我大量的语法错误

            while (postIt.hasNext()) {     
                // Add the game text to the ArrayList     
                Element name = postIt.next();
                String nameString = name.text();
                String platform = postIt.next().text();
                Element url = name.select("a").first();
                String urlString = url.attr("href");

                String genre = postIt.next().text();
                String releaseDate = postIt.next().text();
                gameList.add(new GameRelease(nameString, platform, genre, releaseDate, urlString));
                Log.v(TAG, urlString);
            }

            this.setListAdapter(new GameReleaseAdapter(this, gameList));
            final GameReleaseAdapter myGameReleaseAdapter =new GameReleaseAdapter(this,gameList);

            setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    GameRelease  selectedGameRelease =myGameReleaseAdapter .getItem(position);
                    String urlString=selectedGameRelease.getUrlString();
                    //Make what you like with the url

                }
            });



        }         
while(posit.hasNext()){
//将游戏文本添加到ArrayList
元素名称=posit.next();
字符串nameString=name.text();
字符串平台=posit.next().text();
元素url=name.select(“a”).first();
字符串urlString=url.attr(“href”);
字符串类型=posit.next().text();
字符串releaseDate=posit.next().text();
添加(新游戏发布(名称字符串、平台、类型、发布日期、URL字符串));
Log.v(标记,urlString);
}
this.setListAdapter(新的GameReleaseAdapter(this,gameList));
final GameReleaseAdapter myGameReleaseAdapter=新GameReleaseAdapter(此,游戏列表);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
GameRelease selectedGameRelease=myGameReleaseAdapter.getItem(位置);
String urlString=selectedGameRelease.getUrlString();
//使用url制作您喜欢的内容
}
});
}         

活动
中创建
GameReleaseAdapter
时,请确保有类似的引用

onCreate中

1-阅读您的
游戏列表

2-阅读后,执行以下操作:

final GameReleaseAdapter myGameReleaseAdapter =new GameReleaseAdapter(this,gameList);
3-

getListView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
GameRelease selectedGameRelease=myGameReleaseAdapter.getItem(位置);
String urlString=selectedGameRelease.getUrlString();
//使用url制作您喜欢的内容
}
});

OnItemClickListener
可通过
AdapterView找到。OnItemClickListener

将其放在创建
列表视图的位置
!在GameReleaseAdapter内部或onCreate外部?请尝试
onCreate
,但将
myGameReleaseAdapter
设置为最终设置,以允许内部访问myListView从何处获得?
我正在使用此功能检索项目列表并将其放置在列表中,您将在其中显示这些项目??listview不是吗???
getListView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                GameRelease  selectedGameRelease =myGameReleaseAdapter .getItem(position);
                String urlString=selectedGameRelease.getUrlString();
                //Make what you like with the url

            }
        });