我創建了一個“用戶”類,并添加了一些名稱。接下來,我為 ListView 創建了一個 ArrayAdapter 并將它們連接起來。但我不會只有一次可點擊的專案。我不能。我怎樣才能在串列視圖專案中只點擊一次?請用示例代碼顯示它?
//Adapter
//ListView Adapter
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.list_user,
usersArrayList.stream().map(users -> users.name).collect(Collectors.toList()));
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(MainScreenActivity.this, PointActivity.class);
intent.putExtra("Userr", usersArrayList.get(i));
startActivity(intent);
}
});
uj5u.com熱心網友回復:
它可以通過幾種方式完成。但是對于您的情況,最簡單的方法是為單擊的專案添加一個布爾欄位。但請注意,您需要根據需要管理此檔案。例如,如果您希望每次啟動應用程式時都可以點擊這些專案,那么最初您必須將每個用戶的點擊變數設定為 false。
用戶類
public class User {
//...
public boolean clicked;
//...
}
在您設定專案單擊偵聽器的活動中
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
User user = usersArrayList.get(i);
if(user == null) {
// Make a Log here informing that the user object null
return; // Don't proceed
}
if(user.clicked) return; // This user is already clicked, don't proceed
// If the user is not clicked then set the clicked to true and proceed
user.clicked = true;
// You may want to save or update the modified user here
Intent intent = new Intent(MainScreenActivity.this, PointActivity.class);
intent.putExtra("Userr", user);
startActivity(intent);
}
});
如果您使用資料庫或其他東西,并且想要保存用戶的點擊狀態,請不要忘記在每次修改 clicked 屬性時保存或更新修改后的用戶物件。
uj5u.com熱心網友回復:
您可以將一個布爾標志添加到您的用戶類。一旦您第一次單擊特定專案,只需將該標志設定為真,并在每次該標志為真或假時檢查它。如果為假,則處理點擊事件,否則忽略它。
希望這會幫助你。
問候, ABV
uj5u.com熱心網友回復:
喜歡,
Class User{
.....
bool isItemClicked = false;
}
//Adapter
//ListView Adapter
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.list_user,
usersArrayList.stream().map(users -> users.name).collect(Collectors.toList()));
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
User clickedUser = usersArrayList.get(i);
if(!clickedUser.isItemClicked ){
clickedUser.isItemClicked = true;
Intent intent = new Intent(MainScreenActivity.this, PointActivity.class);
intent.putExtra("Userr", usersArrayList.get(i));
startActivity(intent);}
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/482577.html
標籤:爪哇 安卓 列表显示 安卓列表视图 onitemclicklistener
上一篇:多行按鈕-Flutter
