2015-05-03 59 views
0

大家好日子。OnItemclick字符串丟失值

不幸的是,我沒有太多的Java經驗,我遇到了一個可能非常基本的問題。我正在填寫一個列表視圖,當我點擊其中一個列表項時,我想將字符串發送給另一個意圖。但是字符串的值始終是相同的,即使它很難在列表視圖中正確顯示。我想這與每次出現新項目時都會覆蓋字符串有關。

我想將部分[3]發送到onItemClick中的另一個函數,我將如何完成該操作?

下面是代碼

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     try { 
      ViewHolder holder; 
      final String uuidbeacon; 
      final String pid; 
      uuidbeacon = arrayL.get(position).getProximityUuid().toString(); 
      minorbeacon = arrayL.get(position).getMinor(); 
      rangebeacon = arrayL.get(position).getAccuracy(); 
      parts = fetchTums(uuidbeacon).split("::"); 

      if (convertView != null) { 
       holder = (ViewHolder) convertView.getTag(); 
      } 
      else{ 

       if(parts[0].equals("1")) { 
        holder = new ViewHolder(convertView = inflater.inflate(R.layout.tupple_monitoring, null)); 
        holder.beacon_image.setImageDrawable(getTumImage("http://127.0.0.1/uploads/face/" + parts[4])); 
        holder.beacon_uuid.setText(parts[1]); 
        holder.beacon_txpower.setText(parts[3]); 

        if(parts[2].equals("1")) 
        { 
         holder.beacon_row.setBackgroundColor(Color.parseColor("#B6B6B6")); 
         holder.image_lock.setVisibility(View.VISIBLE); 
        } 
       } 
       if(parts[0].equals("0")) 
       { 
        holder = new ViewHolder(convertView = inflater.inflate(R.layout.tupple_monitoringe, null)); 

       } 
      } 
      pid = parts[3]; 
      if (arrayL.get(position).getProximityUuid() != null) 



      list.setOnItemClickListener(new AdapterView.OnItemClickListener() 
      { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
       { 
        //list.setItemChecked(position, true); 
        //view.setBackgroundColor(Color.BLUE); 
        toastThis(pid); 
        if(parts[2].equals("1")){ 

         pin(pid); 
        } 
        else{ 
         if(pid != null){ 
          openPage(parts[3], "", parts[1]); 
         } 
        } 
       } 
      }); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     return convertView; 
    } 
+0

您沒有選擇使用'onItemClick' –

+0

@JibranKhan我將如何實現這一目標提供位置值? – Maantje

+0

獲取值使用位置作爲數據提供者的索引。 –

回答

0

你必須選擇使用從onItemClick收到position得到確切的項目點擊的價值。在你的情況下,你將不得不像arrayL那樣得到index(位置)處的值。

String item = arrayL[position];

0

我會嘗試實現您的適配器之外的點擊收聽。例如,在片段內。

事情是這樣的:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    YourAdapter adapter = new YourAdapter(getActivity(), mItems); 
    ListView list  = (ListView) view.findViewById(R.id.your_list_id); 

    list.setAdapter(adapter); 
    list.setOnItemClickListener(onItemClicked()); 
} 


private AdapterView.OnItemClickListener onItemClicked() { 
    return new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int i, long l) { 
      YourItem item = (YourItem) parent.getItemAtPosition(i); 
      // your magic happens here 
     } 
    }; 
} 
+0

感謝您的幫助,但我已經得到它的工作:)! – Maantje