0

テキスト入力とボタンを備えたプログラムがあります。入力に何かを入力してボタンを押すと、それStringをに追加して、String ArraylistArraylist表示させたいと思いますTextView。今、私は方法を持っています:

public void addString(View view)
{
    EditText editText = (EditText) findViewById(R.id.edit_choice);
    String message = editText.getText().toString();
    choices.add(message);
}

「edit-choices」はテキスト入力の名前であり、「choices」は配列リストの名前です。まず第一に、私はこれを正しく行っていますか?次に、「選択肢」の内容を表示するテキストビューを取得する方法。今私のTextViewIDはちょうどですtextView1

4

3 に答える 3

1

でリスト項目を表示するのは最善の方法ではないことに注意してくださいTextView。を使用してこれを行うことができますListView。とにかく、以下の疑似コードを参照してください(Eclipseではテストしていませんが、基本的にどのように機能するかを示すはずです):

public class YourActivity extends Activity {

  Vector<String> choices = new Vector<String>();

  public void onCreate(Bundle ....) {
    (Button) myButton =  (Button) findViewById(R.id.button);

    myButton.setOnClickListener(new OnClickListener() {
        @Override
        public boolean button.onClick() {
          addString();
          TextView textView = (TextView) findViewById(R.id.text_view);

          String listRepresentation = "";
          for (String choice : choices)
            if ("".equals(listRepresentation))
              listRepresentation  =       choice; else 
              listRepresentation  = ", " +choice;

          textView.setText(listRepresentation );
        }
     });
  }

  public void addString(View view)
  {
    EditText editText = (EditText) findViewById(R.id.edit_choice);
    String message = editText.getText().toString();
    choices.add(message);
  }
}

OnClickListenerしたがって、必要なことを行うボタンに を割り当てるだけです。

于 2013-03-02T17:14:48.027 に答える
0

問題は、テキストをどのように表示するかです...リストビューのようにするか、通常のテキストとして表示します。テキストビューでテキストを通常のテキストとして表示したい場合は、次のようにするだけです。

for(String msg : choices)
{
textView1.setText(textView1.getText()+msg);
}

選択肢をリスト ビューに表示する場合は、選択した選択肢を使用してアダプターをリスト ビューに設定する必要があります。

于 2013-03-02T17:09:17.817 に答える
-1

まず第一に、私はこれを正しくやっていますか?

それがあなたのために働くなら、確かに。EditTextコンテンツにアクセスするたびに「見つける」必要がないように、キャッシュするかもしれません。


ここでの唯一の「問題」は、 aTextViewを受け入れるメソッドがないことList<String>です。したがって、文字列のリストから単一の文字列を作成する必要があります。

リストを反復処理して、それらを連結するだけです。

StringBuilder b = new StringBuilder();
for (String s : choices){
  b.append(s+"\n");
}
textview.setText(b.toString());

これにより、リスト内のすべてのアイテムから 1 つの文字列が作成され、各アイテムの後に改行が追加されます。

TextViewandroid:inputType-attributeをに設定する必要があるtextMultiLineため、実際には複数の行が表示されます。

于 2013-03-02T17:09:22.580 に答える