通过 XML 通过 Android 中的 onClick 事件获取特定条目
Fetch a specific entry through XML by onClick event in Android
我有一个包含项目(博客)列表的列表视图。每个项目都包含一个标题和 link。
现在我希望当单击一个特定项目时我想开始 xml 解析以仅获取 link 的内容并将其显示在另一个 activity.
中
这是在按下特定项目时调用的 onListItemClick() 方法。
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String urlBlog = mainBlogPost.get(position).link;
Log.d(TAG,urlBlog);
super.onListItemClick(l, v, position, id);
}
这是显示列表的onPostExecute方法
@Override
protected void onPostExecute(List<WhosebugXmlParser.Entry> results) {
if (results != null && mException == null) {
String title,link,summary;
ArrayList<HashMap<String,String>> blogPosts = new ArrayList<HashMap<String,String>>();
for(WhosebugXmlParser.Entry result : results){
title = result.title;
link = result.link;
summary = result.summary;
HashMap<String,String> blogPost = new HashMap<String,String>();
blogPost.put("link",link);
blogPost.put("title",title);
//blogPost.put("summary",summary);
blogPosts.add(blogPost);
}
Collections.copy(results,mainBlogPost ); //copying for public access
String[] keys = {"title","link"};
int[] ids = {android.R.id.text1,android.R.id.text2};
SimpleAdapter adapter =
new SimpleAdapter(MainListActivity.this,blogPosts,android.R.layout.simple_list_item_2,keys,ids);
setListAdapter(adapter);
} else {
if (mException instanceof IOException){
} else if (mException instanceof XmlPullParserException) {
}
}
*/}
10-31 14:32:10.612 2616-2616/com.example.talha.appforblog E/MainListActivity﹕ Exception
java.lang.IndexOutOfBoundsException: Invalid index 3, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.example.talha.appforblog.MainListActivity.onListItemClick(MainListActivity.java:86)
at android.app.ListActivity.onItemClick(ListActivity.java:319)
at android.widget.AdapterView.performItemClick(AdapterView.java:300)
at android.widget.AbsListView.performItemClick(AbsListView.java:1143)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3044)
at android.widget.AbsListView.run(AbsListView.java:3833)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Collections.copy(results,mainBlogPost );
,我想你想把结果复制到mainBlogPost,但也许你误解了这个方法,像这里:[http://developer.android.com/intl/es/reference/java/util/Collections.html#copy(java.util.List, java.util.List)](http://developer.android.com/intl/es/reference/java/util/Collections.html#copy(java.util.List,java.util.List)),第一个参数是目的地第二个参数是 source .
我有一个包含项目(博客)列表的列表视图。每个项目都包含一个标题和 link。 现在我希望当单击一个特定项目时我想开始 xml 解析以仅获取 link 的内容并将其显示在另一个 activity.
中这是在按下特定项目时调用的 onListItemClick() 方法。
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String urlBlog = mainBlogPost.get(position).link;
Log.d(TAG,urlBlog);
super.onListItemClick(l, v, position, id);
}
这是显示列表的onPostExecute方法
@Override
protected void onPostExecute(List<WhosebugXmlParser.Entry> results) {
if (results != null && mException == null) {
String title,link,summary;
ArrayList<HashMap<String,String>> blogPosts = new ArrayList<HashMap<String,String>>();
for(WhosebugXmlParser.Entry result : results){
title = result.title;
link = result.link;
summary = result.summary;
HashMap<String,String> blogPost = new HashMap<String,String>();
blogPost.put("link",link);
blogPost.put("title",title);
//blogPost.put("summary",summary);
blogPosts.add(blogPost);
}
Collections.copy(results,mainBlogPost ); //copying for public access
String[] keys = {"title","link"};
int[] ids = {android.R.id.text1,android.R.id.text2};
SimpleAdapter adapter =
new SimpleAdapter(MainListActivity.this,blogPosts,android.R.layout.simple_list_item_2,keys,ids);
setListAdapter(adapter);
} else {
if (mException instanceof IOException){
} else if (mException instanceof XmlPullParserException) {
}
}
*/}
10-31 14:32:10.612 2616-2616/com.example.talha.appforblog E/MainListActivity﹕ Exception
java.lang.IndexOutOfBoundsException: Invalid index 3, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.example.talha.appforblog.MainListActivity.onListItemClick(MainListActivity.java:86)
at android.app.ListActivity.onItemClick(ListActivity.java:319)
at android.widget.AdapterView.performItemClick(AdapterView.java:300)
at android.widget.AbsListView.performItemClick(AbsListView.java:1143)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3044)
at android.widget.AbsListView.run(AbsListView.java:3833)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Collections.copy(results,mainBlogPost );
,我想你想把结果复制到mainBlogPost,但也许你误解了这个方法,像这里:[http://developer.android.com/intl/es/reference/java/util/Collections.html#copy(java.util.List, java.util.List)](http://developer.android.com/intl/es/reference/java/util/Collections.html#copy(java.util.List,java.util.List)),第一个参数是目的地第二个参数是 source .