[解決済み] ListViewのArrayAdapterを変更できない。UnsupportedOperationException
2023-01-01 21:26:53
質問
名前を含むリストを作成しようとしています。このリストは変更可能でなければなりません (追加、削除、ソートなど)。しかし、ArrayAdapter の項目を変更しようとすると、プログラムがクラッシュし、次のように表示されます。
java.lang.UnsupportedOperationException
エラーが発生します。以下は私のコードです。
ListView panel = (ListView) findViewById(R.id.panel);
String[] array = {"a","b","c","d","e","f","g"};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, array);
adapter.setNotifyOnChange(true);
panel.setAdapter(adapter);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
adapter.insert("h", 7);
}
});
insert、remove、clearメソッドを試したのですが、どれもうまくいきません。どなたか、私が何を間違えたか教えていただけませんか?
どのように解決するのですか?
自分でも試してみたのですが、うまくいきませんでした。そこで、ソースコードを見てみると ArrayAdapter のソースコードを調べてみたところ、問題が見つかりました。ArrayAdapter は、配列で初期化されると、その配列を変更できない AbstractList (リスト) に変換してしまいます。
解決方法
この場合
ArrayList<String>
を使用し、ArrayAdapter を初期化します。
String[] array = {"a","b","c","d","e","f","g"};
ArrayList<String> lst = new ArrayList<String>(Arrays.asList(array));
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, lst);
乾杯
関連
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] LayoutParamsの高さを密度に依存しないピクセル数でプログラム的に設定する。
-
[解決済み] アンドロイドボタンセレクター
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] LayoutParamsの高さを密度に依存しないピクセル数でプログラム的に設定する。
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信