Twitterのタイムラインを表示してみました。

パブリックタイムラインなので各国言語が入り混じってますが。

やってることはRSSファイルのリストビュー表示と変わりませんね。

XMLから拾ってリストビュー表示です。

TwitterClient01

できたできた

コードは続きから。

では、また次回の更新でお会いしましょう

もう少しtwitterネタで遊んでみます(予定)。

//TwitterClient.java

package com.xun.TwitterClient;

import java.net.URL;

import org.xmlpull.v1.XmlPullParser;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class TwitterClientActivity extends Activity {
 ListView listViewTimeline;
 ArrayAdapter<String> adapter;
 
 final String TIMELINE_URL = "http://twitter.com/statuses/public_timeline.xml";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        listViewTimeline = (ListView)findViewById(R.id.ListViewTimeline);
        adapter = new ArrayAdapter<String>(this,R.layout.list);
        showTimeline();
    }
    public void showTimeline(){
     XmlPullParser xmlPullParser = Xml.newPullParser();
     
     try{
      URL url = new URL(TIMELINE_URL);
      xmlPullParser.setInput(url.openStream(),"UTF-8");
      
      int eventType;
      
      while((eventType = xmlPullParser.next())!= XmlPullParser.END_DOCUMENT){
       if(eventType == XmlPullParser.START_TAG){
        if(xmlPullParser.getName().equals("text")){
         adapter.add(xmlPullParser.nextText());
        }
       }
      }
     }catch(Exception e){
      Log.e("TwitterClient","open error:" + e.toString());
        }
       listViewTimeline.setAdapter(adapter);
    }
}

//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<ListView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/ListViewTimeline">
</ListView>
</LinearLayout>

//list.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
</TextView>

//AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.xun.TwitterClient"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".TwitterClientActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>