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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

1611閲覧

【Android Studio】一つのListViewに複数のadapterを使用したい。

YonHan

総合スコア40

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2021/12/30 05:52

前提・実現したいこと

adapterという名前のアダプターを使ったアイテムの次にtodoadapterという名前のアダプターを使ったアイテムが追加されるようにしたいです。

発生している問題・エラーメッセージ

2番目のアダプターしか追加されません

該当のソースコード

Java

1 2 DBHelper_1 DBHelper1; 3 ArrayList<User> userList; 4 ListView listView; 5 User user; 6 7@Override 8 //他のアクティビティから戻る際にListViewを更新したいためonResumeに記述 9 protected void onResume() { 10 super.onResume(); 11 12 DBHelper1 = new DBHelper_1(this); 13 userList = new ArrayList<>(); 14 Cursor data = DBHelper1.getListContents(); 15 //int numRows = data.getCount(); 16 17 //TODO todoテスト変更2 18 int i=0; 19 while(data.moveToNext()){ 20 user = new com.example.adaptertest.User(data.getString(1),data.getString(2),data.getString(3)); 21 userList.add(i,user); 22 System.out.println(data.getString(3));//todoadapterで表示 23 System.out.println(data.getString(1)+" "+data.getString(2));//adapterで表示 24 System.out.println(userList.get(i).getTitleName()); 25 i++; 26 } 27 com.example.adaptertest.TwoColumnAdapter adapter = new com.example.adaptertest.TwoColumnAdapter(this,R.layout.lv_adapter, userList); 28 com.example.adaptertest.ToDoAdapter todoadapter = new com.example.adaptertest.ToDoAdapter(this,R.layout.todo_adapter, userList); 29 listView = (ListView) findViewById(R.id.lv1); 30 listView.setAdapter(adapter); 31 listView.setAdapter(todoadapter);//このアダプターしか反映されない 32 listView.setOnItemLongClickListener(new OnItemLongClickListener()); 33 34 }

補足情報(FW/ツールのバージョンなど)

Gradleバージョン:7.0.2

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

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

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

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

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

hoshi-takanori

2021/12/30 06:35

一つの ListView には一つの adapter しか使えません。一つの ListView で複数種類のセルを使うには、自分でカスタム Adapter を (普通は BaseAdapter のサブクラスとして) 定義する必要があるでしょうね。
YonHan

2021/12/31 10:37

Listview以外で何か実現したいことを実現するための良い方法はありますでしょうか? 知識不足で申し訳ないです...
hoshi-takanori

2021/12/31 10:54

何を実現したいのかよく分かりませんが、要素数が少ないなら LinearLayout を使う方法もあるかと…。
YonHan

2022/01/02 07:14

RecyclerViewを使うのはどうですか?
hoshi-takanori

2022/01/02 08:55

もちろん RecyclerView でもできますが、adapter を書く手間は ListView でカスタム adapter を書く場合とあまり変わらないと思います。
YonHan

2022/01/02 09:02

RecyclerViewでは、複数のアダプターの追加はできるのですか?
hoshi-takanori

2022/01/02 16:15

RecyclerView でも adapter は一つです。上のコメントで「できる」と書いたのは、一つの adapter で複数の種類のセルを混在させることです。
guest

回答2

0

自己解決

ListViewを二つ配置する方向で考えていきたいと思います。
回答していただいた皆さん、ありがとうございました。

投稿2022/01/03 06:47

YonHan

総合スコア40

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

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

0

listView.setAdapterを2回実行したら2つ目だけが入るのは当たり前です。

投稿2021/12/30 06:01

qqfsdfsafd

総合スコア599

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

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

YonHan

2021/12/30 06:08

2つとも追加したい場合はどうすればよいのでしょうか?
qqfsdfsafd

2021/12/30 06:22 編集

英和辞書を引いてsetとaddの意味を調べれば良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問