0

我有一个具有文本输入和按钮的程序。当我在输入中输入内容并按下按钮时,我希望String将其添加到 aString ArraylistArraylist显示在 a 中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没有接受 a 的方法List<String>。因此,您需要从字符串列表中创建一个字符串

您可以简单地遍历列表并将它们组合在一起:

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

这将简单地从列表中的所有项目构建一个字符串,在每个项目后添加换行符。

您需要将TextView's android:inputType-attribute设置为textMultiLine,因此它实际上会显示多行。

于 2013-03-02T17:09:22.580 回答