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

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

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

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

Q&A

解決済

1回答

1184閲覧

Android Studioでアプリ開発をしています。

Kite

総合スコア21

Android Studio

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

0グッド

0クリップ

投稿2018/02/28 05:23

配列の中にあらかじめ要素を入っていて、ボタンイベントで要素が上書きされるようにしたいのですが、要素の初期化の方法がわかりません。

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

java

1public class MainActivity extends AppCompatActivity implements OnClickListener { 2 3 private TextView textView; 4 private ArrayList<String> arrayList ; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_main); 10 11 arrayList = new ArrayList<>(); 12 13 textView = findViewById(R.id.text_view); 14 Button button1 = findViewById(R.id.button1); 15 button1.setOnClickListener(this); 16 17 Button button2 = findViewById(R.id.button2); 18 button2.setOnClickListener(this); 19 } 20 21 @Override 22 public void onClick(View v) { 23 24 if(v.getId() == R.id.button1){ 25 int number = arrayList.size(); 26 // 要素を追加 27 arrayList.add(String.format(Locale.US, "要素%d: arrayList に追加\n", (number+1))); 28 29 } 30 31 StringBuilder stb = new StringBuilder(); 32 33 // 全ての要素を表示 34 for(int i=0; i< arrayList.size(); i++ ){ 35 stb.append(arrayList.get(i)); 36 } 37 textView.setText(stb); 38 39 } 40} 41

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

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

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

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

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

fuzzball

2018/02/28 05:47

「ArrayList 初期化」でググっても分からないのでしょうか?
guest

回答1

0

ベストアンサー

「事後に不足分を足す」のではなく「事前に埋めておく」方針に転換したということでしょうかね。とりあえずこんなんでどうですか。目視で確認しやすいように、カンマで埋めるようにしていますが、空白文字など任意の文字で埋めたければそのように書き換えれば良いでしょう。

Java

1public class MainActivity extends AppCompatActivity implements View.OnClickListener { 2 3 private TextView textView; 4 private ArrayList<String> arrayList; 5 private int count; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main); 11 12 // カンマ+改行で20個分埋める 13 arrayList = new ArrayList<>(Collections.nCopies(20, ",\n")); 14 15 textView = findViewById(R.id.text_view); 16 17 // 目視しやすいようにとりあえずTextViewに表示 18 StringBuilder stb = new StringBuilder(); 19 20 for (int i = 0; i < arrayList.size(); i++) { 21 stb.append(arrayList.get(i)); 22 } 23 textView.setText(stb); 24 25 Button button1 = findViewById(R.id.button1); 26 button1.setOnClickListener(this); 27 28 Button button2 = findViewById(R.id.button2); 29 button2.setOnClickListener(this); 30 31 count = 0; 32 } 33 34 @Override 35 public void onClick(View v) { 36 37 if (v.getId() == R.id.button1) { 38 // 埋められたarrayListのサイズの範囲内であることを確認 39 if(count < arrayList.size()) { 40 // countで示される位置を置き換え 41 arrayList.set(count, String.format(Locale.US, "要素%d: arrayList に追加\n", (count + 1))); 42 count++; 43 } 44 } 45 46 StringBuilder stb = new StringBuilder(); 47 48 // 全ての要素を表示 49 for (int i = 0; i < arrayList.size(); i++) { 50 stb.append(arrayList.get(i)); 51 } 52 textView.setText(stb); 53 } 54}

投稿2018/02/28 09:33

keicha_hrs

総合スコア6768

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

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

Kite

2018/03/01 01:49

回答ありがとうござます。回答いただいたコードを試してみました。 任意の文字で埋めることができました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問