我在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");
}
答案 0 :(得分:0)
更新列表后,您应该调用notifyDataSetChanged以查看更新的UI。在类级别创建ListView变量。在将字符串添加到列表后也调用notifyDataSetChanged。
participants.add("example");
listAdapter.notifyDataSetChanged();
答案 1 :(得分:0)
使用notifyDataSetChanged()
void initParticipants() {
participants = new ArrayList<String>();
participants.add("Creator");
participants.notifyDataSetChanged();
}
答案 2 :(得分:0)
您需要更改带有以下代码的条件块代码
if(isset($_POST['submit'])){
$sql="INSERT INTO reservation
VALUES (null,
'".$_POST['type']."',
'".$_POST['title']."',
'".$_POST['fname']."',
'".$_POST['lname']."',
'".$_POST['contact']."',
'".$_POST['username']."'
,'".$_POST['password']."',
'".$_POST['email']."',
'".$_POST['address']."',
'".$_POST['checkin']."',
'".$_POST['checkout']."');";
$sql .= "INSERT INTO users
VALUES (null,'".$_POST['username']."','".$_POST['password']."','client');";
mysqli_multi_query($conn,$sql);
mysqli_close($conn);
header("Location: login.php");
}
每当列表发生变化时,都需要通过notifyDataSetChanged()方法通知适配器