[英]How to add an item to a listview on a button click event?
我在Android Studio中进行编码,遇到了一些麻烦。 我有一个按钮和一个列表视图。 单击该按钮时,应将一个硬编码的字符串添加到arraylist中。
List participants;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initParticipants();
ListAdapter listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, participants);
ListView participantList = findViewById(R.id.participantList);
participantList.setAdapter(listAdapter);
}
public void changeJoinState(View view) {
boolean checked = ((ToggleButton) view).isChecked();
if(checked) {
participants.add("example");
Toast.makeText(MainActivity.this, "Joined event", Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(MainActivity.this, "Left event", Toast.LENGTH_SHORT)
.show();
}
}
void initParticipants() {
participants = new ArrayList<String>();
participants.add("Creator");
}
更新列表后,您应该调用notifyDataSetChanged来查看更新的UI。 在类级别上使ListView变量。 在将字符串添加到列表后,还要调用notifyDataSetChanged。
participants.add("example");
listAdapter.notifyDataSetChanged();
使用notifyDataSetChanged()
void initParticipants() {
participants = new ArrayList<String>();
participants.add("Creator");
participants.notifyDataSetChanged();
}
您需要使用以下代码更改条件块代码
if(checked) {
participants.add("example");
participantList.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Joined event", Toast.LENGTH_SHORT)
.show();
}
每当列表中有更改时,就需要通过notifyDataSetChanged()方法通知适配器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.