C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.



項目を追加する

リストビューに項目を追加するには, リストビューのセットされたAdapterのaddメソッドを使用する.
    • リストビューのデータを操作するAdapterを生成する.
    • addメソッドで項目を追加する.

項目を削除する

リストビューに項目を追加するには, リストビューのセットされたAdapterのremoveメソッドを使用する.
    • クリックされた項目の文字列を取得する.
    • リストビューからAdapterのオブジェクトを取得する.
    • removeメソッドでクリックされた項目を削除する.
package com.moonlight_aska.android.listview01;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListView01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ListView list = (ListView)findViewById(R.id.listview_id);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list);
    // 項目を追加
    adapter.add("Item1");
    adapter.add("Item2");
    adapter.add("Item3");
    list.setAdapter(adapter);

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // TODO Auto-generated method stub
        ListView list = (ListView)parent;
        String item = (String)list.getItemAtPosition(position);
        ArrayAdapter<String> adapter = (ArrayAdapter<String>)list.getAdapter();
        // 項目を削除
        adapter.remove(item);
      }
    });
  }
}

"Item2"をクリックすると, "Item2"がリストから削除される.





このページへのコメント

他で調べてようやく理解できたと書いてしまいましたが、
自分が見たサイトを思い返してみると、同じこのサイトでした。
リストビューの基本と応用が分かれていたというおちです、すみませんでした。

Posted by zn 2012年02月18日(土) 18:27:16

「リストビュー用のxmlを作るっぽい…」まではわかったのですが、
xmlの中身をどうしたらよいかが分からず、
他で調べてようやく理解できました。

Posted by zn 2012年02月18日(土) 02:48:50

ぬお・・・私とした事が手抜きで配列使用しててハマりました。
ありがとうございます。

Posted by かわぐち 2011年12月31日(土) 18:01:44

ListViewなんですが、add/removeを使用すると、何と強制終了に!
どうやら、ArrayAdapterのコンストラクタに String[]items で登録すると、追加/削除はできないようですね。こちらの説明にあるように、データなしのコンストラクタを使用してひたすらaddで追加するか、List<String>items で渡すべきなのでしょう。
Developers の説明には何も書いていないのですが、String[]だと追加できないのは当たり前かもしれませんね。

Posted by taka 2011年10月01日(土) 11:28:34

コメントをかく


ユーザーIDでかく場合はこちら
「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

AD



管理人のみ編集できます