确认你已经实例化了ArrayAdapter,并将它设置给了ListView。
调用ArrayAdapter的add()方法或addAll()方法添加元素。
示例代码:
ListAdapter.java
public class ListAdapter extends ArrayAdapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder;
if(view == null){
LayoutInflater inflater = ((Activity)getContext()).getLayoutInflater();
view = inflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.text = (TextView)view.findViewById(R.id.item_text);
view.setTag(holder);
}
else{
holder = (ViewHolder)view.getTag();
}
holder.text.setText(items.get(position));
return view;
}
private static class ViewHolder{
public TextView text;
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ArrayList items;
private Button addButton;
private ListView listView;
private ListAdapter listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addButton = (Button)findViewById(R.id.add_button);
listView = (ListView)findViewById(R.id.list_view);
items = new ArrayList();
listAdapter = new ListAdapter(this, items);
listView.setAdapter(listAdapter);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addItem();
}
});
}
private void addItem(){
EditText editText = (EditText)findViewById(R.id.edit_text);
String itemText = editText.getText().toString();
if(itemText.length() > 0){
items.add(itemText);
listAdapter.notifyDataSetChanged();
editText.setText("");
}
}
}
这个示例代码演示了如何将元素添加到ListView中,添加到ArrayList中的元素会自动显示到ListView上。如果手动调用了listAdapter的notifyDataSetChanged()方法,则ListView会刷新并显示新添加的元素。