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

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

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

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

Q&A

解決済

1回答

8778閲覧

ListViewのsetListAdapterがエラーになる。

kaaa

総合スコア29

Android

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

0グッド

0クリップ

投稿2015/03/16 09:24

ActionBarActivity内のListViewに関して質問です。dammyデータを表示させたいのですが以下のコードの一番下

lang

1setListAdapter(this, ExampleItems);

でエラーが発生してしまいます。
エラー内容は、cannot resolve method ’setListAdapter’
実は、ListFragmentで利用していたものを参考にしたのですが、ActionbarActivityでは、違うようで躓いてしまっております。
何卒よろしくお願いいたします。

lang

1@Override 2protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.example1); 5 6 getSupportActionBar().setHomeButtonEnabled(true); 7 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 8 9 10 // TODO: Delete dummy data 11 ExampleItems = new ArrayList<ExampleElement>(); 12 13 int maxLength = 3; 14 15 for (int i = 0; i < maxLength; i++) { 16 ExampleElement item = new ExampleElement(); 17 item.setAccountName("User Name"); 18 item.setImage(R.drawable.ic_launcher); 19 ExampleItems.add(item); 20 } 21 22 setListAdapter(this, ExampleItems); 23 24}

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

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

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

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

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

guest

回答1

0

ベストアンサー

setListAdapterは,ListActivityやListFragmentでそれぞれ固有のListViewにAdapterをセットするメソッドです(Activity,Fragmentのメソッドではないのです).
それ以外でListViewを使う場合,ActivityなりFragmentなりにListViewを用意して,
そのListViewに対してListView#setAdapterを使います.
レイアウトにListViewがあるのなら,findViewByIdでListViewを取得して,
それに対してメソッドを実行します.

投稿2015/03/16 09:37

swordone

総合スコア20651

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

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

kaaa

2015/03/16 09:52

なるほど。setListAdapterについてよく理解できました。今回の場合ですとListViewがレイアウトにあるので setListAdapter(this, ExampleItems);を削除し @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.example1);  ListView listView = (ListView) findViewById(R.id.list); を追記すれば、出るという事なんでしょうか?(一応やってはいるんですが、上手くできておりません。) よろしければ伺えますと幸いです。
swordone

2015/03/16 10:01

ListFragmentで使っていたものを参考にしたとのことですが,そうなるとレイアウトで使用しているListViewのidが android:id="@id/android:list" となっているのではないですか? これは,ListActivityやListFragment(以下画面系クラス)でコントロールするListViewだという意味なので, それ以外では使えません. なので,次のように書き換えます. android:id="@+id/list" (/のあとの文字列はご自由に.要は他のViewと同じようにidを設定する) また,同じように「リストが空の場合に表示するTextView」も, android:id="@id/android:empty" のidがついたものを認識します.これも他の画面系クラスでは使えないので もし残っていれば削除してください.
swordone

2015/03/16 10:06

↑ごめんなさい,「画面系クラス」は「Activity系クラスやFragment系クラス」の意味で取ってください. 下から2行目の「他の画面系クラス」も「ListActivityやListFragment以外の画面系クラス」と解釈してください.
kaaa

2015/03/16 10:54

御丁寧な説明ありがとうございます。 idに関しましては、頂いたように記載させて頂きました。 しかし、なんともならず。。。 恐らく、作りとして ListViewに他のxmlファイルを参照する&ListAdapterを使ったりして、少しぐちゃぐちゃになってしまっているのかもしれません。 不明瞭な質問申し訳ございませんでした。 setListAdapterに関しては解決できました。ありがとうございました。
swordone

2015/03/16 11:33

今気づきましたが,ExampleItemsはArrayAdapterではなくてArrayListですね. setAdapterやsetListAdapterはListAdapterを引数に取るので ArrayListのままsetAdapterには渡せません. ArrayListを元にしてArrayAdapterなどのListAdapter実装クラスのオブジェクトを作成する必要があります.
kaaa

2015/03/16 11:57

ありがとうございます。 こちらの質問は、一応別途詳しく記載させて頂きました。きっと問題多い気がします。 https://teratail.com/questions/7720
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問