2012-02-14 13 views
0

私はRSSフィードを私のアプリケーションのリストビューに解析しました。私はそれがrssの各項目のリンクを引っ張って、リストビュー内の項目をクリックすると開きます。基本的には、私はすでにすべてのものが用意されていますが、このステートメントの後にどのコーディングを使うべきかはっきりしていません。onItemClick RSSフィードからのURLを開く

ます。public void onItemClick(AdapterView親、ビュービュー、int型の位置、長いID){

私は私のコードは、RSSファイルに保存されたURLを開くためのあるべき場所であると知っているが、わからないどのようにここからそれを検索します。どんな助けでも大歓迎です。

パブリッククラスMainActivityアクティビティがOnItemClickListener {

//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) { 




} 

}私はthisTutorialを通過し、完全なソースコードをダウンロードし、作業それを得るために主張だけでしょう `

答えて

1

を実装して拡張します。これは、どのようにそれが動作しても、それはあなたが学ぶようになるだろうという(SAX、DOM、XmlPullParser、いくつかの他)ParserXMLいくつかを使用して含まれていることを、あなたのクエリをクリアします。

UPDATE:

あなたはgetSelectedItemPosition()を使用してListViewから選択された値を得ることができます。そして、RSSを表示するためのさらなるプロセスを行います。

public void onItemClick(AdapterView<?> parent, View view, int position, 
                     long id) { 
      // get the selected item and do the further process 
      listview.getItemAtPosition(position); 
} 
+0

私はそれをやったことがあり、私はそれが必要な方法で動作することはありませんでした。私はxml解析をうまく行って、すべてが別のチュートリアルを使用して、必要なもので修正しています。私が必要とするのは、リストビューのアイテムをクリックした後でリンクをロードする方法を理解することですが、RSSファイルからリンクをロードする必要があります。 – Bryan

+0

さて、コードを投稿してあなたがしたこととどこに問題があるのか​​についての正確なアイデア。 –

+0

すべてのコードは私が投稿したいと私は喜んでそれを投稿しますか – Bryan

関連する問題