国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android開發實現ListView部分布局監聽的方法

2019-10-22 18:16:47
字體:
來源:轉載
供稿:網友

本文實例講述了Android開發實現ListView部分布局監聽的方法。分享給大家供大家參考,具體如下:

android listview 部分布局監聽,很多人會想,直接在適配器里面,拿到那個布局,添加點擊事件就可以了,不過我會告訴你的是這時候position是錯亂的,是無法根據用戶點擊的位置來對每個item進行相應的邏輯操作。  同事給我想到的一個辦法是:給每個布局提前設置一個tag,也就是綁定對應需要設置的數據,在點擊事件的時候,會有一個view,根據該view重新拿到這個tag,取得里面的數據,就可以了,防止錯亂的問題,成功解決,大概的代碼如下,因為加密的需要,很多代碼省略:

// 適配器public class OrAdapter extends BaseAdapter {  @Override  public int getCount() {   return dataMap.size();  }  @Override  public Object getItem(int position) {   return position;  }  @Override  public long getItemId(int position) {   return position;  }  @Override  public View getView(int position, View convertView, ViewGroup parent) {   ViewHolder viewHolder = null;   if (convertView == null) {    viewHolder = new ViewHolder();    convertView = getActivity().getLayoutInflater().inflate(      R.layout.activity_order_item, null);    initViewHolder(convertView, viewHolder, position);   } else {    viewHolder = (ViewHolder) convertView.getTag();   }   refreshViewHolder(position, viewHolder);   return convertView;  }  private String getTag(String orderId, String instrument) {   StringBuilder sb = new StringBuilder();   sb.append(orderId).append(";").append(instrument);   return sb.toString();  }  private void refreshViewHolder(int position, ViewHolder viewHolder) {   // ------------------為了防止item被復用------------------   viewHolder.modeifyorder.setTag(getTag(orderid, instrument));  }  private void initViewHolder(View convertView, ViewHolder viewHolder,    final int position) {   viewHolder.modeifyorder = (RelativeLayout) convertView     .findViewById(R.id.modeifyorder);   viewHolder.modeifyorder.setOnClickListener(new OnClickListener() {    @Override    public void onClick(View v) {     int isman = (Integer) dataMap.get(position).get("ismanual");     int isprice = (Integer) dataMap.get(position).get(       "ispricereached");      String tag = v.getTag().toString();      String tagVec[] = tag.split(";");      long orderId = Long.parseLong(tagVec[0]);      String instStr = tagVec[1];    }   });   convertView.setTag(viewHolder);  }  private class ViewHolder {   TextView orderid;   RelativeLayout modeifyorder;  }}

有不明白的可以相互交流

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周口市| 广昌县| 繁峙县| 梅州市| 天峻县| 久治县| 阿城市| 色达县| 花莲市| 嘉鱼县| 南康市| 辉南县| 汝城县| 伊金霍洛旗| 延庆县| 龙岩市| 定边县| 化德县| 申扎县| 寿光市| 林西县| 绥中县| 阜康市| 比如县| 民丰县| 赤壁市| 昂仁县| 迁安市| 武威市| 武功县| 堆龙德庆县| 盘山县| 江川县| 云龙县| 普洱| 淮南市| 乌鲁木齐市| 泰来县| 桦南县| 德令哈市| 盐边县|