質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2122閲覧

ListViewに任意の数値を持たせたい(idに設定したい)

hanhunhun

総合スコア100

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/08/25 09:43

編集2016/08/26 01:52

お世話になっております。

表題の件、adapterでデータをセットしたListViewの各Itemに任意のIDを設定したいのですがやり方がわからず2時間経ちましたので質問させていただきました。
ButtonであればsetId(任意の数値)でIDがセットできますが同様にListViewの各Itemにも任意のIDがセットできないでしょうか?
その後そのIDをもとにSQLで検索するためどうしても任意の数値を各Itemにセットしたいのです。

もしほかにベストな方法があれば別の方法でも構いません

どうかよろしくお願いします

Java

1 final ArrayList<Map<String,String>> list = new ArrayList<Map<String,String>>(); 2 final SimpleAdapter ad = new SimpleAdapter( 3 this, 4 list, 5 R.layout.list_col2_layout, 6 new String[]{"txt1","txt2"}, 7 new int[]{R.id.textname,R.id.textdata} 8 ); 9 10--省略-- 11 for(int i = 0;i<txt1.size();i++){ 12 Map<String,String> map = new HashMap<String,String>(); 13 map.put("txt1",txt1.get(i)); 14 map.put("txt2",txt2.get(i)); 15 list.add(map); 16 } 17 18 lv.setAdapter(ad); 19

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Adapterに渡したデータリストにフィールド変数IDを追加したらどうでしょう。

投稿2016/08/25 10:43

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hanhunhun

2016/08/26 01:53

実装コードの追加をしました リストにフィールド変数を追加する方法がいまいちわかりません 質問ばかりですみません
yona

2016/08/26 02:01

SimpleAdapterを使わずにArrayAdapterを継承したクラスを使いましょう。
yona

2016/08/26 02:04

もしくはidもMapに入れてしまうといいですね。
yona

2016/08/26 02:18 編集

誤操作でコメントしてしまいました。
hanhunhun

2016/08/27 02:51

ArrayAdapterを継承したクラスのsetIdメソッドで任意のIDをセットするという方法でもいけますか?
yona

2016/08/27 03:07

getViewで作成するViewに対してですか? それならできますが、プログラム上でView#setIdを使うのはなかなか面倒くさいのでフィールドにした方が楽ですね。
hanhunhun

2016/08/27 04:01

ということは以下のようなイメージで実装すればよろしいんでしょうか? public class main extends Activity{ private String strId; public void onCreate(Bundle savedInstanceState){ ~~~~~~~~~~~~~ } private class MyAdapter extends ArrayAdapter{ public View getView(){ ~~~~~~~~~~~~~~~~ strId = 任意のID; } } }
hanhunhun

2016/08/27 04:02

間違いました Adapterの継承クラスはmainの外です
yona

2016/08/27 04:48

ArrayAdapter<>のジェネリクスで指定したクラスのフィールドに追加するんですよ。
hanhunhun

2016/08/27 05:23

最後にすみませんがその追加した変数にListViewのアイテムクリック時に呼び出したいのですがその場合はどのようにその変数にアクセスしたらよいですか? よろしくお願いします
yona

2016/08/27 05:37

OnItemClickListnerの第三引数をArrayAdapterのgetItemに渡すとジェネリクスで指定したクラスのインスタンスが取得できます。
hanhunhun

2016/08/27 08:43

長々とありがとうございました! 来週試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問