• 締切済み

android studioのlistview

listviewに他画面から、受け取ったデータを追加する方法について、質問です。 他画面から、データを受け取って、textviewに表示させることは出来たのですが、listに追加することが出来ません。 text = (TextView)findViewById(R.id.++); と text.setText(data.getCharSequenceExtra("key")); という感じでテキストには表示することは可能でした。listに追加していく方法を教えて下さい。 list.add(data.getCharSequenceExtra("key"));じゃ、出来ませよね。。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

ListViewに値を表示するにはAdapterというものを使う。他画面から受け取ったデータはまぁ文字列だろうからそれをStringの配列なりなんなりにしてArrayAdapterに食わせてListView#setAdapter()で表示してあげれば良かろうて。 ListViewと組み合わせてリスト表示を実現するAdapterインターフェースのファミリーにはArrayAdapterの他にもSimpleAdapterとかBaseAdapterとかたくさんあってそれぞれ用途が違うのでまずは「ListView Adapter」あたりで検索してみると良いだろう。

関連するQ&A

  • AndroidアプリからMySQLのデータ取得

    こんにちは。 今、androidの勉強をしながらアプリを作成しています。 androidやjavaの知識レベルは、初心者レベルです。 タイトルにもあるように、AndroidアプリからMySQLのデータ取得方法がわかりません。 今現在、eclipse内のエミュレータではデータの取得と表示はできています。 しかしながら、実機でテストをすると、データが取れていません。 なにぶん初心者なので、どこを見れば良いか、何を設定すれば好いか、いきあたりばったりでテストしています。皆様のアドバイス宜しくお願いします。 【開発環境】 windowsXP eclipse3.5 mysql5.1(ユーザー、IP、ポート、データベース、テーブルなどは設定済み) jdbc5.1(構成パスにJDBCは追加済み) 【ソース一部抜粋】 public class Prof extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Connection conn = null; Statement stmt = null; ResultSet rs = null; setContentView(R.layout.prof); TextView set_NameLabel = (TextView) findViewById(R.id.set_nameLabel); TextView set_oldLabel = (TextView) findViewById(R.id.set_oldLabel); TextView set_jobLabel = (TextView) findViewById(R.id.set_jobLabel); TextView set_addLabel = (TextView) findViewById(R.id.set_addLabel); TextView set_homeLabel = (TextView) findViewById(R.id.set_homeLabel); TextView set_hobbyLabel = (TextView) findViewById(R.id.set_hobbyLabel); TextView set_comentLabel = (TextView) findViewById(R.id.set_comentLabel); try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/prof_db","test_01","test_pass"); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM my_prof"); rs.next(); set_NameLabel.setText(rs.getString("prof_name")); set_oldLabel.setText(rs.getString("prof_age")); set_jobLabel.setText(rs.getString("prof_occupation")); set_addLabel.setText(rs.getString("prof_address")); set_homeLabel.setText(rs.getString("prof_home")); set_hobbyLabel.setText(rs.getString("prof_hobby")); set_comentLabel.setText(rs.getString("prof_comment")); conn.close(); rs.close(); stmt.close(); } catch (ClassNotFoundException e){ e.printStackTrace(); } catch ( SQLException e) { e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); } } } 何かしらのアドバイス、解決方法、参考HPなど、ご教授宜しくお願いします。

  • ListViewにて行追加

    Visual C# 2005初心者です。 ListViewを使用して、データを表示するのに、 listView1.Items.Add("1111111", 3); listView1.Items.Add("2222222", 3); listView1.Items.Add("3333333", 3); と書くと、列が追加されます。 行を追加するには、どうすればよいのでしょうか? どうか、教えてください。

  • androidアプリの開発 WebView

    androidアプリの開発について質問です。 現在intentによりデータを受信して表示する事までができたのですが、 受信したデータをWebViewにて表示をすると、 WebView領域にnull というテキストリンクまでもが表示されます。 通常のデータは正常に表示されています。 ちなみに null のテキストリンクをクリックしても ページが表示されませんというエラーが出るだけです。 どなたかご存知の方がいましたらご教授くださいませ。 以下ソース抜粋 if (intent != null) { String tmp = ""; String desc = ""; TextView tv; tv = (TextView) findViewById(R.id.item_detail_title); tmp = intent.getStringExtra("TITLE"); tv.setText(tmp); tv = (TextView) findViewById(R.id.item_detail_descr); tmp = intent.getStringExtra("DESCRIPTION"); tv.setText(tmp); WebView wv = (WebView) findViewById(R.id.Des); desc = WEBVIEW_BEGIN; tmp = intent.getStringExtra("Link"); desc += String.format(WEBVIEW_LINK, tmp, tmp); tmp = intent.getStringExtra("DESCRIPTION"); desc += tmp + WEBVIEW_END; wv.loadDataWithBaseURL("about:blank", desc, "text/html", "utf-8", null); }

    • ベストアンサー
    • Java
  • Android ListViewで横一列で水平スクロールするリストの作

    Android ListViewで横一列で水平スクロールするリストの作り方。 マッピング用のlist.xmlにImageViewやTextViewを配置。 list.xmlのImageViewやTextViewへAdapterをセットしています。 生成されたListViewは通常このように表示される。 □ ▲ □ || □ ▼ しかし、今回解決したい問題は生成されたListViewの表示を以下にしたいのです。 □□□□ <======> 当方はListViewで横一列で水平スクロールするリストは無理なのか、可能なのかも分かっておりませんので、 「ListViewで横一列で水平スクロールするリストは無理だよ!」や 「ListViewで横一列で水平スクロールするリストはこう作ればいいよ」など、、 どんな情報でも構いませんので、どなたか、分かる方がいらっしゃいましたらご教授いただけませんでしょうか? 宜しくお願いいたします。

  • androidアプリのlistviewについて質問

    現在Listviewにてテキストと画像を表示させています。 各行をクリックした時に、それぞれ別のActivityに移行させたいのですが、 初心者の為、悪戦苦闘しています。 わかる方がいましたら、アドバイスをお願い致します。 現在のソースは以下のとおりで、各行をタッチしても何も起こらない状況です。 public class CustomListViewActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bitmap image; image = BitmapFactory.decodeResource(getResources(), R.drawable.tb); Bitmap image2; image2 = BitmapFactory.decodeResource(getResources(), R.drawable.tb2); Bitmap image3; image3 = BitmapFactory.decodeResource(getResources(), R.drawable.tb3); List<CustomData> objects = new ArrayList<CustomData>(); CustomData item1 = new CustomData(); item1.setImagaData(image); item1.setTextData("1行目のテキスト"); CustomData item2 = new CustomData(); item2.setImagaData(image2); item2.setTextData("2行目のテキスト"); CustomData item3 = new CustomData(); item3.setImagaData(image3); item3.setTextData("3行目のテキスト"); objects.add(item1); objects.add(item2); objects.add(item3); CustomAdapter customAdapater = new CustomAdapter(this, 0, objects); ListView listView = (ListView)findViewById(R.id.list); listView.setAdapter(customAdapater); } protected void onListItemClick(ListView l, View v, int position, long id) { switch (position) { case 0: startActivity(new Intent(this, ItemDetailActivity.class)); break; case 1: startActivity(new Intent(this, ItemDetailActivity.class)); break; case 2: startActivity(new Intent(this, ItemDetailActivity.class)); break; } } }

  • android HashMapについて助言お願いし

    初心者ですが、どうぞ宜しくお願いします。 下記コードでは、マップに 「 map.put( "Key1", "val1" ); map.put( "key2", "val2" ); 」を追加しているのですが、このデータをキーから取り出しテキストビューに表示しようとしています。 このままではエラーはないのですが、何も表示されない状況です。 初心者の無知な質問となりますが、 テキストビューへの表示方法はどのようにすればよいのでしょうか? 何か別の方法でもよいので、ご教授宜しくお願いいたします。 -------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv1"></TextView> </LinearLayout> ------------------------------------------------------------ package com.test; import java.util.HashMap; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class TestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //1)HashMapからMapのインスタンスを生成 HashMap<String, String> map = new HashMap<String, String>(); // キーと値のペアを格納 map.put( "Key1", "val1" ); map.put( "key2", "val2" ); // 指定したキーに対応する値を取得. String val = (String)map.get( "key1" ); // テキストビュー取得 TextView tv = (TextView)findViewById(R.id.tv1); tv.setText(val); } }

    • ベストアンサー
    • Java
  • Androidアプリ Listviewが

    アドバイスください。初心者です。Listviewを作りたいだけなんです。”データがありません”と表示されてしまいます・・。 ●layout(.xml) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/android:empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="データが存在しません"/> </LinearLayout> ●listview(.java) import android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; //ListActivityを継承 import com.example.yamato.myapplication001.R; public class listview extends ListActivity { private String[] items = { "a10", "a11", "a21", "b10" }; //(2) // private String[] items = {};(2) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //リストビューを含むレイアウト指定(1) setContentView(R.layout.activity_main_activity001); // ArrayAdapterオブジェクトの生成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); // Adapterの指定 setListAdapter(adapter); // ListActivity内部にあるListViewオブジェクトを取得する場合 ListView listView = getListView(); // ListViewオブジェクトを取得したので以下のメソッド等が利用できる // 選択する要素の位置の指定 listView.setSelection(3); } } ソースは参考本からです。

  • VB2010 ListView 使い方

    VB2010でListViewを使っています。かなり順調にプログラムが出来ているのですが、トラブルに遭遇しました。 Form1でDATAを入力して、Form2とForm3でそのDATAをListViewを使って表示しています。 そして、Form2のListViewをForm4に簡素化した雛形にして、ListViewを使って表示させています。 同様に、Form3のListViewをForm5に簡素化した雛形にして、ListViewを使って表示させています。 Form2からForm4は問題なく表示されますが、Form3からForm5はエラーとなります。 エラーは次のところで生じます。 ListView1.Items(2).SubItems.Add(Form3.ListView1.Items(1).SubItems(2)) エラーメッセージは次のようです。 「'1' の InvalidArgument=Value は 'index' に対して有効ではありません。」 また、次のようにコーディングしてみると、 ListView1.Items(2).SubItems.Add(Form3.Label2.Text) 「Labl2」と表示されるだけです。Label2の情報は表示されません。 単純にDATAを移すだけなのに、1つは出来て、もう1つは出来ないというのが分かりません。 どこに問題があるのでしょうか。 かなり悩んでいますが、解決策が見出せません。 ご教授いただける方が居られましたら、宜しくお願い申し上げます。

  • Android開発(Listview)について

    Androidアプリ開発における listviewについて質問させてください。 以下で、東京都,神奈川県,千葉県,埼玉県,茨城県,栃木県,群馬県と表示されています。 東京をクリックしたら、新宿、上野、秋葉原 千葉をクリックしたら、千葉、市川、船橋 といったように、さらに地域を絞っていきたいと考えています。 どのような方法で、実現できるか アドバイスして頂けると助かります。 ■searchActivity.java import android.app.Activity; import android.os.Bundle; import android.widget.*; public class searchActivity extends Activity { private ListView list; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); String[] arr = {"東京都","神奈川県","千葉県","埼玉県","茨城県","栃木県","群馬県"}; // コンポーネントの設定 list = (ListView)this.findViewById(R.id.list); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, arr); list.setAdapter(adapter); } } ■main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="20sp" android:background="#ffffff" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> ■list.xml <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="20sp" android:paddingTop="50.0px" android:paddingLeft="20.0px" android:background="#ffffff" android:textColor="#000000" /> 以上、宜しくお願いいたします。

  • ストアアプリ開発 C# ListViewについて

    ストアアプリ開発 C#初心者です。 サーバーからデータ取得後、 ListViewにデータを追加したいのですがよくわかりません。 ListViewに表示させたいのは日付、タイトル、画像です。 xaml↓ <ListView Grid.Row="1" x:Name="ListView1"></ListView> C# foreach (var item in blog_list){ ListViewItem addItem = new ListViewItem(); addItem.Tag = item.GetObject().GetNamedString("id"); addItem.Content = item.GetObject().GetNamedString("name"); ListView1.Items.Add(addItem); } 本当に初心者で申し訳ないのですがわかりやすい 解説等してるサイトありましたら教えてください。

専門家に質問してみよう