Android 单击从RSS源打开URL

Android 单击从RSS源打开URL,android,rss,Android,Rss,在我的应用程序中,我将RSS提要解析为列表视图。我试图让它拉rss中每个项目的链接,并在单击listview中的项目时打开它。基本上,我已经准备好了所有的东西,但不确定在这个语句之后应该使用什么编码 public void onItemClick(AdapterView父对象、视图、整型位置、长id){ 我知道这是我打开保存在rss文件中的url的代码,但不知道如何从这里检索。非常感谢您的帮助 公共类MainActivity扩展活动实现了McClickListener{ //RSS Feed U

在我的应用程序中,我将RSS提要解析为列表视图。我试图让它拉rss中每个项目的链接,并在单击listview中的项目时打开它。基本上,我已经准备好了所有的东西,但不确定在这个语句之后应该使用什么编码

public void onItemClick(AdapterView父对象、视图、整型位置、长id){

我知道这是我打开保存在rss文件中的url的代码,但不知道如何从这里检索。非常感谢您的帮助

公共类MainActivity扩展活动实现了McClickListener{

//RSS Feed URL
private final String CGR_FEED_URL = "http://www.mychurchevents.com/Calendar/RSS.ashx?days=7&ci=G1M7G1N8K5G1N8N8H2&igd=";

//XML Widgets
private ListView listview_episodes;
private ProgressBar progress_bar;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //XML Widgets by ID
    listview_episodes = (ListView) findViewById(R.id.listview_episodes);
    listview_episodes.setOnItemClickListener(this);
    progress_bar = (ProgressBar) findViewById(R.id.progress_bar);
    //Make Progress Bar Invisible
    progress_bar.setVisibility(ProgressBar.INVISIBLE);

    new ArrayList<String>();
    new ArrayList<String>();


    downloadEpisodes(CGR_FEED_URL);

}

private void downloadEpisodes(String Url) {
    //Make Progress Bar Visible While Downloading Feed
    progress_bar.setVisibility(ProgressBar.VISIBLE);
    Log.d("CGRParser", "Downloading Feed");
    //Start an ASync Thread to take care of Downloading Feed
    new DownloadEpisodes().execute(Url);
}

private class DownloadEpisodes extends AsyncTask<String, Integer, ArrayList<Episode>> {

    @Override
    protected ArrayList<Episode> doInBackground(String... url) {

        //Download and Parse Feed
        XmlFeedParser parser = new XmlFeedParser();
        ArrayList<Episode> episodes = new ArrayList<Episode>();
        episodes = parser.parse(url[0]);

        return episodes;
    }

    @Override
    protected void onPostExecute(ArrayList<Episode> result) {

        //Feed has been Downloaded and Parsed, Display Data to User
        Log.d("CGRParser", "Feed Download Complete");
        displayEpisodes(result);

    }

}

private void displayEpisodes(ArrayList<Episode> episodes) {

    //Create String Arrays to seperate titles and dates
    Log.d("CGRParser", "Displaying Episode Titles To User");
    ArrayList<String> episode_titles = new ArrayList<String>();
    ArrayList<String> episode_dates = new ArrayList<String>();
    for (Episode episode : episodes) {
        Log.d("CGRParser", "Episode Title: " + episode.getTitle());
        episode_titles.add(episode.getTitle());
        episode_dates.add(episode.getDate());
    }

    //Create a ListAdapter to Display the Titles in the ListView
    ListAdapter adapter = new ArrayAdapter<String>(this, R.layout.episode_row, R.id.title, episode_titles);
    listview_episodes.setAdapter(adapter);

    //Set Progress Bar Invisible since we are done with it
    progress_bar.setVisibility(ProgressBar.INVISIBLE);

}

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {




}
//RSS源URL
私有最终字符串CGR\U提要\U URL=”http://www.mychurchevents.com/Calendar/RSS.ashx?days=7&ci=G1M7G1N8K5G1N8N8H2&igd=";
//XML小部件
私人ListView ListView_剧集;
私人进度条进度条;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//按ID分类的XML小部件
listview_集=(listview)findViewById(R.id.listview_集);
listview_剧集。SetonicClickListener(此);
进度条=(进度条)findViewById(R.id.progress\u条);
//使进度条不可见
进度条设置可见性(进度条不可见);
新的ArrayList();
新的ArrayList();
下载剧集(CGR_提要_URL);
}
私有void下载集(字符串Url){
//下载提要时使进度条可见
进度条设置可见性(进度条可见);
Log.d(“CGRParser”,“下载提要”);
//启动异步线程以负责下载提要
新建下载集().execute(Url);
}
私有类下载任务{
@凌驾
受保护的ArrayList doInBackground(字符串…url){
//下载并解析提要
XmlFeedParser=新的XmlFeedParser();
ArrayList片段=新建ArrayList();
片段=parser.parse(url[0]);
回归集;
}
@凌驾
受保护的void onPostExecute(ArrayList结果){
//提要已下载并解析,向用户显示数据
Log.d(“CGRParser”,“提要下载完成”);
显示(结果);
}
}
私有void显示集(ArrayList集){
//创建字符串数组以分隔标题和日期
Log.d(“CGRParser”,“向用户显示插曲标题”);
ArrayList插曲标题=新建ArrayList();
ArrayList事件日期=新建ArrayList();
用于(插曲:插曲){
Log.d(“CGRParser”,“插曲标题:”+插曲.getTitle());
插曲标题.add(插曲.getTitle());
插曲_dates.add(插曲.getDate());
}
//创建ListAdapter以在ListView中显示标题
ListAdapter=new ArrayAdapter(此,R.layout.eposition\u行,R.id.title,eposition\u titles);
listview_.setAdapter(适配器);
//设置进度条不可见,因为我们已经完成了它
进度条设置可见性(进度条不可见);
}
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
}
}
`

我坚持通过
教程
下载完整的源代码并使其工作。这将清除您对其工作原理的疑问,还包括使用您将要学习的几种
XML
解析器
(SAX、DOM、XmlPullParser等)

更新:

您可以使用
getSelectedItemPosition()
列表视图中获取所选值,然后执行显示RSS的进一步过程

public void onItemClick(AdapterView<?> parent, View view, int position,
                                                                      long id) {
            // get the selected item and do the further process
            listview.getItemAtPosition(position); 
}
public void onItemClick(AdapterView父视图、视图、int位置、,
长id){
//获取所选项目并执行进一步的过程
listview.getItemAtPosition(位置);
}

我已经完成了这一步,但从来没有让它按我需要的方式工作过。我的xml解析很好,从使用另一个教程到用我需要的东西修改它,一切都在进行中。我所需要的是弄清楚如何在单击列表视图中的项目后在Web视图中加载链接,但它需要加载从rss文件的e链接好的,然后你应该发布你的代码,以准确了解你做了什么以及你面临的问题。你希望我发布的所有代码是什么,我会很乐意将其发布到你面临的问题,这一部分。好的,我编辑并发布了我试图完成的主要活动。有问题的代码应该在底部