忍者ブログ
Androidアプリ開発で行った事をメモしてます。

スポンサード リンク
スポンサード リンク
最新コメント
最新トラックバック
注目アイテム
ブログ内検索
29
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

テキストをリスト表示するプログラムを作ってみる。

サンプルのHelloAndroidをベースに
レイアウトのmain.xmlにListViewを追加、AcrivityをListActivityに変更し
以下ようにプログラムを書いてみる。

・main.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
</TextView>
<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
</ListView>
</LinearLayout>

・sample.java
public class AndroidSample extends ListActivity {

    private List<String> sampleList = new ArrayList<String>();
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        sampleList.clear();

        for(int i=0; i<5; i++){
            sampleList.add("dummy item " + i);
        }

        ArrayAdapter<String> adpviewList = new ArrayAdapter<String>(this,
                                                                                            R.layout.main,sampleList);
        this.setListAdapter(adpviewList);
    }
}

コンパイルエラーが取れたので実行してみるとエラーで実行できず。
LogCatに次のエラーが出てました。(もっと沢山でてたが、まずはこれ)
You must supply a resource ID for a TextView

「TextViewにIDを付けてよ」的なメッセージかな??
調べてみると android:id="@+id/****" のようなIDを記述してあげる必要があるようだ。
見よう見まねで以下のように修正し、再トライ。
<TextView
    android:id="@+id/textview01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
</TextView>
<ListView
    android:id="@+id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
</ListView>


最初のエラーは解決できたが、別のエラーでまだだめ。
ArrayAdapter requires the resource ID to be a TextView

「ArrayAdapterを使う場合は、TextViewじゃないとダメよ」かな?
main.xmlに全部かいてあるのがダメっぽい。
大枠のレイアウトの記述をmain.xmlに、リスト1行のレイアウトを新規に作成した
別のxmlに記述すると上手くいった。
(この辺全然理解してないため結構はまりました。)

TextViewの記述をcol.xmlに記述して再実行。

今度はこのエラー。
Your content must have a ListView whose id attribute is 'android.R.id.list'

ListViewのidは'android.R.id.list'じゃないとだめらしい。

で、最終的なソース

・main.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView
    android:id="@id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
</ListView>
</LinearLayout>

・col.xml
<?xml version="1.0" encoding="UTF-8"?>
<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
</TextView>


・sample.java
public class AndroidSample extends ListActivity {

    private List<String> sampleList = new ArrayList<String>();
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        sampleList.clear();

        for(int i=0; i<5; i++){
            sampleList.add("dummy item " + i);
        }

        ArrayAdapter<String> adpviewList = new ArrayAdapter<String>(this,
                                                                                            R.layout.col,sampleList);
        this.setListAdapter(adpviewList);
    }
}

上手くリスト表示できた。

PR


<スポンサード リンク>





いつでも美味しい水やお湯が飲めるウォーターサーバーを紹介しています。
感謝の気持ちを届けよう!母の日ギフトのご紹介
話題の商品、人気商品を探すお手伝い
お名前
タイトル
文字色
URL
コメント
パスワード
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback URL
Copyright c Android開発メモ All Rights Reserved
Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
忍者ブログ / [PR]