我有一个带有文本输入和按钮的程序。当我在输入中输入内容并按下按钮时,我希望将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
答案 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
,这样它实际上会显示多行。