2014-03-27 2 views
1

У меня проблема с пользователем theclicklistener. Когда я нажимаю изображение, он запустит другое действие. Если я нажимаю на изображение много раз, он запускает несколько действий.Android Viewholder onclicklistener несколько кликов

Как я могу позволить onclicklistener запускать только одно действие?

public View getView(final int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
      final ViewHolder holder; 
     if (convertView == null) { 

      convertView = mInflater.inflate(R.layout.epi_list_row, null); 
      holder = new ViewHolder(); 

      holder.date = (TextView) convertView.findViewById(R.id.date); 
      holder.month_year = (TextView) convertView.findViewById(R.id.month_year); 
      holder.time = (TextView) convertView.findViewById(R.id.time); 

      holder.status = (ImageView) convertView.findViewById(R.id.status); 
      holder.ecg_view = (ImageView) convertView.findViewById(R.id.ecg_view); 
      //holder.ecg_view = (Button) convertView.findViewById(R.id.ecg_view); 
      holder.check = (CheckBox) convertView.findViewById(R.id.ecg_checkbox_select); 


      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 

     } 


     holder.date.setText(mDate[position].toString().substring(8)); 
      holder.month_year.setText(mDate[position].toString().substring(0, 7)); 
      holder.time.setText(mTime[position].toString()); 


      if(mUpdate[position].toString().equals("1")){ 
       //holder.status.setText("Sent"); 
       holder.status.setBackgroundResource(R.drawable.sent_icon); 
      }else if(mUpdate[position].toString().equals("0")){ 
       //holder.status.setText("Pending"); 
       holder.status.setBackgroundResource(R.drawable.pending_icon); 
      } 


      holder.ecg_view.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

        try { 
         getParsedMyXML(position, mFiles.get(position), true); 
        }catch (Exception e) { 
         // TODO Auto-generated catch block     
        } 

        // Launch another activity 
        startDrawing(mData, mDate[position] + " " + mTime[position]); 
       } 
      }); 


     return convertView; 
    } 
+0

Вы делаете вызов asyn в getParsedMyXML? – playmaker420

+0

Нет асинхронного вызова в getParsedMyXML – user2508120

ответ

0

В вашем onClick method, попробуйте следующее:

if(firstClick == true) { 
    firstClick = false; 
    // Launch another activity 
    startDrawing(mData, mDate[position] + " " + mTime[position]); 
    } 

Объявить firstClick как глобальный логической переменной, которая изначально установлен в true. Другая деятельность может затем изменить значение firstClick обратно на true, если это необходимо.

+1

Я попробовал этот метод, он не работает. Он по-прежнему будет запускать несколько событий onclick, когда есть несколько кликов на изображении владельца изображения – user2508120

Смежные вопросы