2011年3月2日水曜日

android.R.layout.simple_list_item_2 について

ArrayAdapterでリスト内アイテムの1つの項目に2行表示させようとしたが、実行時にエラーが出て落ちる
解決策は以下

1、SimpleAdapterを使用する
    かなり、こった使い方ができるが面倒でもあるので今回はパス
    やり方は、ネットで検索すると沢山出てくる


2、Stringを無理やり2行に分ける
    こっちの方が楽かなと思った


例)
public class Test_ListViewActivity extends android.app.ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {




(中略)

        // 日付の一覧を元にArrayAdapterを生成する
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, selectDays());
                                    
↑simple_list_item_1のままでいい


        // ArrayAdapterをリストに設定する
        getListView().setAdapter(adapter);
    }

    private ArrayList<String> selectDays() {
        ArrayList<String> ret = new ArrayList<String>();

        // 日付を整形出力するためのフォーマッターを生成
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd (E)");

        // 今日のカレンダーを取得
        Calendar cal = Calendar.getInstance();

        // 月の最大日数分だけ繰り返す
        int maxday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        for (int i = 0; i < maxday; i++) {
            cal.set(Calendar.DAY_OF_MONTH, i + 1);
            // 整形した日付の文字列をリストに追加する
            String datestr = fmt.format(cal.getTime());
            ret.add(datestr + "\n" + "メモのタイトルでも表示させる?");

                                          ↑改行して表示させるようにする

        }
        return ret;
    }
}
























   ↓クリックで、このブログの評価が上がり執筆者が喜びます
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
   にほんブログ村

0 件のコメント: