Android在文本视图中查看arraylist

时间:2013-03-02 16:58:25

标签: android textview

我有一个带有文本输入和按钮的程序。当我在输入中输入内容并按下按钮时,我希望将String添加到String Arraylist并将Arraylist显示在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”是数组列表的名称。首先,我正确地做到了吗?其次,如何获取文本视图以显示“选项”的内容。现在我的TextView ID只是textView1

3 个答案:

答案 0 :(得分: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分配给您所需的按钮即可。

答案 1 :(得分:0)

问题是您希望如何显示文本... 无论是列表视图还是普通文本。 如果你想在文本视图中将文本显示为普通文本,你可以简单地做这样的事情。

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

如果您希望在列表视图中显示选项,则需要使用您拥有的选项将适配器设置为列表视图。

答案 2 :(得分:-1)

  

首先,我是否正确地做到了这一点?

如果它适合你,当然。我可以缓存EditText,这样您每次访问内容时都不必“找到”它。


这里唯一的“问题”是,TextView没有接受List<String>的方法。因此,您需要从字符串列表中创建单个字符串。

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

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

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

您需要将TextView的{​​{3}}设置为textMultiLine,这样它实际上会显示多行。