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

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

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

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

Android

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

7727閲覧

[Android]ListViewで表示するViewにIDを設定し、Viewを選択した際そのIDを取得する

miyabi_5011

総合スコア10

Java

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

Android

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2015/12/30 18:08

編集2015/12/31 03:24

Androidのアプリ開発1年目でまだまだ分からないことばかりです...

今回つまったところはタイトル通りListViewのそれぞれのView(列)にIDを設定して、
Viewが設定された際にそのIDを取得するというものです。

各Viewにはタイトルと日付を表示し、IDを設定します。
Viewを選択するとViewのIDを取得して、
ほかの画面に移動させたいと思っています。

一番欲しいのはListViewの列内部の情報です。

このIDは表示されないようにしたいのですが、それはできるのでしょうか...

できるのであれば教えてもらえると幸いです。

足りない情報などがあればすぐに返信したいと思います。

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

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

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

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

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

swordone

2015/12/31 03:02

用途がわからないのでもう少し教えてほしいのですが、 ・ListViewの各列に違う要素を詰めてそれを判別するのか ・ListViewの列内部の情報を取得したいのか など、どういう状況を求めているのかを説明してください。
guest

回答2

0

ベストアンサー

ArrayAdapter<T>は使っていますか?
このTをタイトル、日付、IDをフィールドに持つクラスを指定します。
その後、ListView#onItemClickの第一引数を使い、AdapterView#getAdapterの引数に第三引数を渡すことでクリックした行のTを取得できます。

投稿2015/12/31 03:36

yona

総合スコア18155

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

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

miyabi_5011

2015/12/31 04:01

すいません、そのArrayAdapter<T>っていうのの使い方がわからないのですが、 教えてもらえますでしょうか、、、
swordone

2015/12/31 04:03

それなら今現在、どうやってListViewを使っているのですか?
miyabi_5011

2015/12/31 04:15

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<Book> books = new ArrayList<Book>(); Book book; CreateProductHelper helper = new CreateProductHelper(this); SQLiteDatabase db = helper.getReadableDatabase(); String createSql = "create table test (_id integer primary key, title text, date text);"; String insertSql[] ={ "insert into test (title, date) values ('hayaki', '20151201');", "insert into test (title, date) values ('yoshito', '20151101');", "insert into test (title, date) values ('furukawa', '20151030');", "insert into test (title, date) values ('daiki', '20150507');" }; try { db.execSQL(createSql); } catch (Exception e) { } for (int i = 0; i < insertSql.length; i++) { db.execSQL(insertSql[i]); } String columns[] = {"_id", "title", "date"}; Cursor cursor = db.query("test", columns, null, null, null, null, "date"); while (cursor.moveToNext()) { String id = cursor.getString(0); String title = cursor.getString(1); String date = cursor.getString(2); book = new Book(id, title, date); books.add(book); } Adapter adapter = new Adapter(this, R.layout.list_item, books); ListView lv = (ListView) findViewById(R.id.booklist); lv.setAdapter(adapter); lv.setDivider(null); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { Toast.makeText(MainActivity.this, "選択されました", Toast.LENGTH_LONG).show(); } }); } こんな感じです...
swordone

2015/12/31 04:35

Adapter adapter = new Adapter(this, R.layout.list_item, books); Adapterはインタフェースのはずなので、このようなインスタンス化はできないはずですが… これの完全限定名(パッケージ名からの名前)は何ですか?
miyabi_5011

2015/12/31 04:43

public class Adapter extends ArrayAdapter<Book> { private Context _context; private int _textViewResourceId; private List<Book> _items; private LayoutInflater _inflater; public Adapter(Context context, int textViewResourceId, List<Book> items) { super(context, textViewResourceId, items); _context = context; _textViewResourceId = textViewResourceId; _items = items; _inflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView != null) { view = convertView; } else { view = _inflater.inflate(_textViewResourceId, null); } Book item = _items.get(position); ((TextView) view.findViewById(R.id.list_title)).setText(item.getTitle()); ((TextView) view.findViewById(R.id.list_date)).setText(item.getIsbn()); Animation anim = AnimationUtils.loadAnimation(getContext(), R.anim.motion); view.startAnimation(anim); return view; } } Adapterはこんな感じで作ってます。
swordone

2015/12/31 04:50

であれば、onItemClickedで、クリックされた列番号をadapter.getItem(int)に渡すと対象のBookオブジェクトを取得できます。そのオブジェクトを通して情報更新した後、adapterに対してnotifyDataSetChanged()すればListViewの更新ができるはずです。
yona

2015/12/31 04:51

Adapterなんて名前を付けてはダメですよ。 onItemClick(AdapterView<?> parent, View view, int pos, long id){ Book b = ((Book)parent.getAdapter().getItem(pos)); } 上記のようにすればうまくいくと思います。
miyabi_5011

2015/12/31 05:06

ListViewの列に表示させているデータを引っ張ってくるにはどうすればいいのでしょうか...
yona

2015/12/31 05:09

上のコメントに書いてあるとおりです。
guest

0

逆引きAndroid入門-リストビュー

ListViewにsetOnItemClickListenerでリスナーを設定し、
onItemClickedでクリック時の動作を記述します。
onItemClickedメソッドには、リストビューの列がクリックされた時に、クリックされた位置の列番号が渡されます。これを使ってリストにセットされたアダプタから情報を取り出すことができます。別途IDなどを設定する必要はありません。

投稿2015/12/31 03:34

swordone

総合スコア20649

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

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

miyabi_5011

2015/12/31 04:21

Listから取り出したデータを別画面にもっていって、 そのデータ(ID、タイトル、日付) の書き換えとかをしたいので最低でもIDは必要なんです...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問