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

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

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

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

解決済

1回答

1311閲覧

arraylist<String>の内容をアラートダイアログの一覧に表示したい

atRhod

総合スコア10

Android

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

0クリップ

投稿2020/08/31 13:21

Kotlin言語でAndroidアプリを開発しているのですが、中々進めない部分があり質問させて頂きました。

実現したいこと

開発しているアプリは、設定値を保持するSharedPreferencesを用いて文字列データを保持しています。
その格納文字列をユーザーに選択させたい処理があり、アラートダイアログに一覧表示させたいと思っており、以下コードを書いております。

Kotlin

1//SharedPreferencesから一覧を読み込む。(データの型は「ArrayList<String>」) 2val strList: ArrayList<String> = loadArrayList("PREFERENCES_KEY") 3 4//アラートダイアログを表示 5AlertDialog.Builder(context) 6 .setTitle("タイトル") 7 .setItems(strList) { dialog, which -> //エラー発生 8 //選択時した場合の処理 9 //・・・ 10      }.show()

問題点・エラー内容

「.setItems(strList)」の部分でエラーが発生しており、中々先に進めない状況です。エラー内容は以下の通りです。
エラー(1)
None of the following functions can be called with the arguments supplied:
public final fun setItems(items: Array<(out) CharSequence!>!, listener: ((DialogInterface!, Int) -> Unit)!): AlertDialog.Builder! defined in android.app.AlertDialog.Builder
public open fun setItems(items: Array<(out) CharSequence!>!, listener: DialogInterface.OnClickListener!): AlertDialog.Builder! defined in android.app.AlertDialog.Builder
public final fun setItems(itemsId: Int, listener: ((DialogInterface!, Int) -> Unit)!): AlertDialog.Builder! defined in android.app.AlertDialog.Builder
public open fun setItems(itemsId: Int, listener: DialogInterface.OnClickListener!): AlertDialog.Builder! defined in android.app.AlertDialog.Builder

エラー(2)
Cannot infer a type for this parameter. Please specify it explicitly.

試していること

エラー(2)はエラー(1)が原因だと思いましたので、エラー(1)の対処をしております。
エラーは、ArrayListの内容が<String><CharSequence> と一致しないという内容だと思い、調べているのですが、いまいち解決方法が分からず、詰まったままの為質問させて頂きました。

ご教授の程、よろしくお願いします。

環境

Android Studio 4.0.1
Build #AI-193.6911.18.40.6626763, built on June 25, 2020
Runtime version: 1.8.0_242-release-1644-b3-6222593 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.6
GC: ParNew, ConcurrentMarkSweep
Memory: 2014M
Cores: 4
Registry: ide.new.welcome.screen.force=true
Non-Bundled Plugins: org.jetbrains.kotlin, com.google.services.firebase

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

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

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

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

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

guest

回答1

0

ベストアンサー

setItems()ではなく、setAdapter()を用いる方法では目的は果たせないでしょうか?

kotlin

1 //アラートダイアログを表示 2 AlertDialog.Builder(this) 3 .setTitle("タイトル") 4 .setAdapter(ArrayAdapter( 5 this, android.R.layout.simple_list_item_1, strList) 6 ) { dialog, which -> 7 //選択時した場合の処理 8 //・・・ 9 }.show() 10

警告文で述べられているのは、setItems()の引数として与えることができる型についてです。下記リンクのリファレンスの内容を述べているに過ぎません。

AlertDialog.Builder#setItmes | Android Developers

投稿2020/08/31 15:08

編集2020/08/31 15:29
keicha_hrs

総合スコア6768

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

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

atRhod

2020/09/01 10:21

keicha_hrs様 教えて頂いた通り、setAdapter()を用いることで目的を達成することができました。 これでアプリ開発を進めることができます。本当に有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問