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" + "メモのタイトルでも表示させる?");
↑改行して表示させるようにする
0 件のコメント:
コメントを投稿