首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android ListView Item 點擊跳轉詳情頁:Intent 傳遞數據標識的最佳實踐

     編輯:程式設計疑難解答

核心模式:位置/ID 傳遞 + 詳情頁查詢

**不要在點擊事件中寫大量 switch-case**。正確做法:

  1. ListView 條目綁定唯一標識 (資料庫主鍵 id、position、或業務 code)。
  2. 點擊時將標識放入 Intent 傳遞。
  3. 詳情頁 onCreate 取出標識,查詢數據庫/網路獲取完整數據並顯示。

方案一:Adapter 中綁定點擊 (推薦)

// Adapter.getView()
View view = inflater.inflate(R.layout.item, null);
view.setOnClickListener(v -> {
    Intent intent = new Intent(context, DetailActivity.class);
    intent.putExtra("item_id", dataList.get(position).getId()); // 傳遞唯一 ID
    context.startActivity(intent);
});
return view;

方案二:ListView OnItemClickListener

listView.setOnItemClickListener((parent, view, position, id) -> {
    MyData item = (MyData) parent.getItemAtPosition(position);
    Intent intent = new Intent(this, DetailActivity.class);
    intent.putExtra("item_id", item.getId());
    startActivity(intent);
});

詳情頁接收邏輯

// DetailActivity.onCreate()
long itemId = getIntent().getLongExtra("item_id", -1);
if (itemId != -1) {
    MyData detail = dbHelper.queryById(itemId); // 或網路請求
    bindViews(detail);
}

優勢總結

  • **擴展性**:新增數據無需修改點擊邏輯。
  • **解耦**:列表頁不關心詳情數據結構,詳情頁自行查詢。
  • **效能**:避免在列表頁預載入所有詳情數據。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved