我是Android Studio的新手,所以如果您能帮我解决问题,我将不胜感激。如何输入一些文字并使用ListView
将其添加到Bundle
?
例如,假设我在MainActivty中的EditText
组件中输入了一个名称,然后当我按下OK按钮时,它将被显示在列表视图中的另一个活动中。
我一直在使用Bundle
将文字传输到另一个Activity
,但我无法弄清楚如何将文字传输到ListView
。
答案 0 :(得分:2)
如果您只想在列表项中显示字符串,则可以相当简单地完成,否则您将需要制作自定义适配器。对于前者,这是你想要做的事情
ArrayList<String>
,您将存储从EditText
输入的值。ArrayAdapter<String>
,用于将ArrayList
与ListView
相关联。您的最终代码如下所示:
public class MainActivity extends Activity {
private ListView listView;
List<String> strings;
ArrayAdapter<String> arrayAdapter;
public void onCreate(Bundle saveInstanceState) {
setContentView(R.layout.yourLayout);
listView= (ListView) findViewById(R.id.yourListView);
strings = new ArrayList<String>();
strings.add("list item 1");
strings.add("list item 2");
arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
strings);
listView.setAdapter(arrayAdapter);
}
}
然后在“确定”按钮的onClick上,只需将EditText中的字符串添加到arrayList,并通知listView它应该更新为调用它:
arrayAdapter.notifyDataSetChanged();
答案 1 :(得分:0)
我认为您不能将Bundle
用于您想要实现的目标。我就是这样做的......
首先,您需要设置列表。我会使用全局变量:
ListView listView;
EditText editText;
ArrayList<String> strings;
ArrayAdapter<String> adapter;
现在,在onCreate()
,你可以......
listView = (ListView) findViewById(R.id.your_listview);
editText = (EditText) findViewById(R.id.your_edittext );
strings = new ArrayList<>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strings);
listView.setAdapter(adapter);
您需要为OnClickListener
设置Button
。我也会在onCreate()
中执行此操作:
Button button = (Button) findViewById(R.id.your_button);
button .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Here we get the text from the EditText component
String text = editText.getText().toString();
// Now add it to the list
strings.add(text);
// And finally, update the list
adapter.notifyDataSetChanged();
}
});