• ベストアンサー

【Android】ListViewの削除ボタン

こんにちは、Androidアプリの開発について、ご質問したいのですが、 ListViewでリストを作り、各行に削除ボタンを持たせ、それをクリックした場合に、 その行を削除するような画面を作成したいのですが、 行の削除方法が分かりません。 行ごとの削除ボタンのイベントは、AdapterのgetViewメソッドで定義すれば良いと わかりました。 また、リストの行自体をクリック(タッチ)したら、その行を削除するという例はいろいろ 見つけることができました。 何か良い情報や、HPをご存じの方がおりましたら、お教え下さい。 よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

ListViewインスタンスはちゃんと用意できていますか。ListViewの表示リストは、ListAdapterと呼ばれるものにより管理されます。単にテキストの項目だけなら、ArrayAdapterを利用されることと思います。ですので、ListViewから使用しているArrayAdapterを取得し、そこからremoveを使って削除すればいいでしょう。 String str = (String)リストビュー.getItemAtPosition(削除項目の位置); ArrayAdapter<String> adapter = (ArrayAdapter<String>)リストビュー.getAdapter(); adapter.remove(str); ArrayAdapterなら、ざっとこんな感じです。他のListAdapterでも、基本的な使い方はだいたい同じです。ListViewとListAdapterについて調べてみるとよくわかるでしょう。

関連するQ&A

  • ListView 削除ボタン押下時に値を取得したい

    VS2012 c# WEBフォームです。 ListViewで削除ボタンを押したときに行のアイテムを取得したいのですが、方法を教えて下さい。 更新ボタンはListViewのOnItemUpdatingイベントから Label str_id = (Label)ListView1.EditItem.FindControl("idLabel1"); とすると取得きました。 同じように 削除ボタンはListViewのOnItemDeletingイベントから Label str_id = (Label)ListView1.SelectedItemTemplate.FindControl("idLabel1"); とすると、FindControlが使えない旨のメッセージが表示されます。 ItemTemplateでも同じです。 削除ボタンはItemTemplateとSelectedItemTemplateにしか置いていないのですが、 どのように取得すれば良いのでしょうか。。

  • Android開発のListViewについて質問で

    Androidアプリケーション開発の初心者です。 ListViewについて質問です。 LayoutでListViewの内容を android:entries="@array/リスト名 にすることによってvaluesに入ったリストを参照することができますが、 このリスト名を動的に変えることはできますか? できるとしたら、どのようにしてやるのでしょうか お知恵を貸していただきたいです。よろしくお願いします。

  • Androidアプリ Listviewが

    アドバイスください。初心者です。Listviewを作りたいだけなんです。”データがありません”と表示されてしまいます・・。 ●layout(.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" android:orientation="vertical" > <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/android:empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="データが存在しません"/> </LinearLayout> ●listview(.java) import android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; //ListActivityを継承 import com.example.yamato.myapplication001.R; public class listview extends ListActivity { private String[] items = { "a10", "a11", "a21", "b10" }; //(2) // private String[] items = {};(2) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //リストビューを含むレイアウト指定(1) setContentView(R.layout.activity_main_activity001); // ArrayAdapterオブジェクトの生成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); // Adapterの指定 setListAdapter(adapter); // ListActivity内部にあるListViewオブジェクトを取得する場合 ListView listView = getListView(); // ListViewオブジェクトを取得したので以下のメソッド等が利用できる // 選択する要素の位置の指定 listView.setSelection(3); } } ソースは参考本からです。

  • Android開発(Listview)について

    Androidアプリ開発における listviewについて質問させてください。 以下で、東京都,神奈川県,千葉県,埼玉県,茨城県,栃木県,群馬県と表示されています。 東京をクリックしたら、新宿、上野、秋葉原 千葉をクリックしたら、千葉、市川、船橋 といったように、さらに地域を絞っていきたいと考えています。 どのような方法で、実現できるか アドバイスして頂けると助かります。 ■searchActivity.java import android.app.Activity; import android.os.Bundle; import android.widget.*; public class searchActivity extends Activity { private ListView list; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); String[] arr = {"東京都","神奈川県","千葉県","埼玉県","茨城県","栃木県","群馬県"}; // コンポーネントの設定 list = (ListView)this.findViewById(R.id.list); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, arr); list.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" android:textSize="20sp" android:background="#ffffff" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> ■list.xml <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="20sp" android:paddingTop="50.0px" android:paddingLeft="20.0px" android:background="#ffffff" android:textColor="#000000" /> 以上、宜しくお願いいたします。

  • アンドロイドのリストについて

    アンドロイドのアプリを作ろうと思っています。 作りたいプログラムはボタンを押すとリストが全画面に表示され、中の項目をクリックするとリストが消えて元の画面に戻るといものです。 初めはListViewを使っていたのですが、初歩的な使い方だとListViewがあいているスペースに出るだけで、全画面表示にならず、その後どうやってもリストが消えません。 あのアプリでよく見かける様なリストはどうやって使うのか教えてください。 出来ればやり方を紹介しているHPもお願いします

  • androidアプリのlistviewについて質問

    現在Listviewにてテキストと画像を表示させています。 各行をクリックした時に、それぞれ別のActivityに移行させたいのですが、 初心者の為、悪戦苦闘しています。 わかる方がいましたら、アドバイスをお願い致します。 現在のソースは以下のとおりで、各行をタッチしても何も起こらない状況です。 public class CustomListViewActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bitmap image; image = BitmapFactory.decodeResource(getResources(), R.drawable.tb); Bitmap image2; image2 = BitmapFactory.decodeResource(getResources(), R.drawable.tb2); Bitmap image3; image3 = BitmapFactory.decodeResource(getResources(), R.drawable.tb3); List<CustomData> objects = new ArrayList<CustomData>(); CustomData item1 = new CustomData(); item1.setImagaData(image); item1.setTextData("1行目のテキスト"); CustomData item2 = new CustomData(); item2.setImagaData(image2); item2.setTextData("2行目のテキスト"); CustomData item3 = new CustomData(); item3.setImagaData(image3); item3.setTextData("3行目のテキスト"); objects.add(item1); objects.add(item2); objects.add(item3); CustomAdapter customAdapater = new CustomAdapter(this, 0, objects); ListView listView = (ListView)findViewById(R.id.list); listView.setAdapter(customAdapater); } protected void onListItemClick(ListView l, View v, int position, long id) { switch (position) { case 0: startActivity(new Intent(this, ItemDetailActivity.class)); break; case 1: startActivity(new Intent(this, ItemDetailActivity.class)); break; case 2: startActivity(new Intent(this, ItemDetailActivity.class)); break; } } }

  • Android ListViewで横一列で水平スクロールするリストの作

    Android ListViewで横一列で水平スクロールするリストの作り方。 マッピング用のlist.xmlにImageViewやTextViewを配置。 list.xmlのImageViewやTextViewへAdapterをセットしています。 生成されたListViewは通常このように表示される。 □ ▲ □ || □ ▼ しかし、今回解決したい問題は生成されたListViewの表示を以下にしたいのです。 □□□□ <======> 当方はListViewで横一列で水平スクロールするリストは無理なのか、可能なのかも分かっておりませんので、 「ListViewで横一列で水平スクロールするリストは無理だよ!」や 「ListViewで横一列で水平スクロールするリストはこう作ればいいよ」など、、 どんな情報でも構いませんので、どなたか、分かる方がいらっしゃいましたらご教授いただけませんでしょうか? 宜しくお願いいたします。

  • androidのintentの使い方

    // //問題:LISTを押すと、エラーが出る、Intentの問題ですか? // public class FirstActivity extends Activity { // onCreateメソッド(画面初期表示イベントハンドラ) private static final String TAG ="[HelloWorld]"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);// スーパークラスのonCreateメソッド呼び出し setContentView(R.layout.firstlayout);// レイアウト設定ファイルの指定 ListView listview = (ListView) findViewById(R.id.fruitlist); // ListViewオブジェクト取得 listview.setOnItemClickListener(new ListItemClickListener()); // ListViewオブジェクトにクリックリスナーを関連付け } // アイテムクリックリスナー定義 class ListItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {// onItemClickメソッド(値選択時イベントハンドラ) ListView listview = (ListView) parent; // ListViewオブジェクト取得 String item = (String) listview.getItemAtPosition(position);// 選択された値取得 Log.d(item, TAG); Intent intent = new Intent(FirstActivity.this,SecondActivity.class);// インテントの生成(呼び出すクラスの指定) startActivity(intent);// 次のアクティビティの起動 } } } -------------------------------------------------------------------------- public class SecondActivity extends Activity { // onCreateメソッド(画面初期表示イベントハンドラ) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // スーパークラスのonCreateメソッド呼び出し setContentView(R.layout.main);// レイアウト設定ファイルの指定 } }

    • ベストアンサー
    • Java
  • ListViewで、PageDownキーイベントを発生させるには?

    VB6で開発しています。 ラベルとListViewのみのフォーム上で、 PageUpやPageDownキー押下で、イベントを発生させたいのですが、 PageDownを押下すると、ListView内のリストのカーソルが下に移動してしまい、 (フォーカスが当たるコントロールがListViewしかないためと思われますが) イベントが発生せずに困っています。 自分で実現しようとしてできなかった方法を紹介します ・リストビューにフォーカスが当たらないようにする。   Enabled = Falseだとスクロールバーが使えないので困る。    ・ListViewはEnabled=Falseにし、スクロールバーコントロールを使って、スクロールさせる。   スクロールさせる方法が見つかりませんでした。 何か、よいアイデアや方法があれば、ご教授宜しくお願いしますm(_ _)m

  • listview とactivity について

    android studio のアプリ制作でlistview とactivity についての使い方について、教えてください。初心者です。listview の画面と2つのactivities の遷移ぐらいだけは作成できます。 質問 : 20の国名をlistviewに並べて、各国名をクリックすれば、別の画面でその国の国旗の画像と簡単な説明文が読める内容です。新しいactivityを20個つくらずにする方法をわかりやすく教えてください。 ネットでずいぶん検索したんですが見当たりません。ある方から、”けんちんとん”さんというサイトを紹介されたのですが、少し古くかつeclipseなので設定が異なり、できませんでした。 初心者でわかりやすい動画やサイトが嬉しいのですが? よろしくお願いします。