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

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

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

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

Q&A

1回答

1681閲覧

listviewの反映

退会済みユーザー

退会済みユーザー

総合スコア0

Android Studio

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

0グッド

0クリップ

投稿2017/11/03 18:30

編集2017/11/03 19:22

list viewにstring[] items を表示させ、buttonをタップすることでonAddRecordを処理してlist viewに反映させたいのですが、buttonのonClickに指定したonAddRecordがうまく動きません。

MainActibity.java public class MainActivity extends AppCompatActivity { ListView myListView; public static String[] items = {"value1","value2","value3","value4","value5","value6","value7","value8","value9","value10"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myListView =(ListView)findViewById(R.id.myListView); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items); myListView.setAdapter(arrayAdapter); } public void onAddRecord(View view){ myListView = (ListView) findViewById(R.id.myListView); items[10] = "value11"; items[11] = "value12"; } }
activity.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.kazu.recordmanager.MainActivity"> <ListView android:id="@+id/myListView" android:layout_width="0dp" android:layout_height="535dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.0" tools:layout_constraintBottom_creator="1" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" android:layout_marginStart="2dp" android:layout_marginEnd="2dp" /> <Button android:id="@+id/addButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:onClick="onAddRecord" android:text="@string/addItem" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> </android.support.constraint.ConstraintLayout>

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

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

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

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

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

guest

回答1

0

アイテムを動的に扱いたい場合、配列は向いていません。代わりにリストを使いましょう。

onAddRecord()の先頭の
myListView = (ListView) findViewById(R.id.myListView);
は既に有るので削除しましょう。

変更をListViewに反映させるには、
listView.setAdapter(arrayAdapter);を再び呼ぶ
または
arrayAdapter.notifyDataSetChanged();
をすると大抵上手く行きます。

細かいようですが、命名規則についても知っておいた方が良いです。
onAddRecord() は
addRecord()
に改名しましょう。
onAddRecord()では、アイテムを追加したときに呼ばれるメソッドのようになってしまいます。

投稿2017/11/04 09:06

1129

総合スコア121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問