Android 如何使用此设置McClick侦听器
我用它来检索项目列表并将它们放在列表中。还将为每个项目检索URL。我正在使用ListActivityAndroid 如何使用此设置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
// 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
}
});