2011-07-11 100 views
2

我使用以下代碼來顯示標籤列表,當我選擇任何項目時,在所選項目之前顯示刻度標記。滾動列表視圖時選擇的項目問題

我將繼續下一個活動。現在的問題是,當我再次來到這個活動使用後退按鈕和滾動該列表查看標記顯示在許多標籤之前,而不是我選擇的單一。

任何人指導我在這裏做什麼錯誤?

ImageView selectedTickImageView; 
getview{ 

    if (convertView == null) { 
         convertView = mInflater.inflate(R.layout.row_tags_archives, null); 
         holder = new ViewHolder(); 
         holder.tickImageView= (ImageView)convertView.findViewById(R.id.tick_image_view); 
         holder.titletextView = (TextView)convertView.findViewById(R.id.tv_tags_archives); 
         holder.tickImageView.setTag(position); 

         convertView.setOnClickListener(new View.OnClickListener() { 

          @Override 
          public void onClick(View paramView) { 
            if(selectedTickImageView != null){ 
             selectedTickImageView.setVisibility(View.GONE); 
            } 

            ImageView tickImageView = (ImageView)paramView.findViewWithTag(position); 
            tickImageView.setVisibility(View.VISIBLE); 

            selectedTickImageView =tickImageView; 
            S=tags[position]; 
            S=S.replace(" ", "-"); 
            S=S.toLowerCase(); 
            Intent intent = new Intent(HPressTagsorUpdatesActivity.this ,HPressSummariesActivity.class); 
            startActivity(intent); 
          }}); 

         convertView.setTag(holder); 

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

回答

1

帶標記+選定字段的類將是更有效的方法來解決這個問題,但我已經使用全局布爾數組來跟蹤選定的項目。

if (convertView == null) { 
        //private Context _context = ; 
        LayoutInflater mInflater = LayoutInflater.from(HPressTagsorUpdatesActivity.this); 
        convertView = mInflater.inflate(R.layout.row_tags_archives, null); 
        holder = new ViewHolder(); 
        holder.tickImageView= (ImageView)convertView.findViewById(R.id.tick_image_view); 
        holder.tickImageView.setTag(position); 
        holder.titletextView = (TextView)convertView.findViewById(R.id.tv_tags_archives); 




        convertView.setTag(holder); 

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


       if(selected[position] == true) 
       { 
        holder.tickImageView.setVisibility(View.VISIBLE); 
       }else 
       { 
        holder.tickImageView.setVisibility(View.GONE); 

       } 


       convertView.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View paramView) { 

         ImageView tickImageView = (ImageView)paramView.findViewWithTag(position); 
         tickImageView.setVisibility(View.VISIBLE); 
          selected[position] = true; 

          S=tags[position]; 
          S=S.replace(" ", "-"); 
          S=S.toLowerCase(); 
          Intent intent = new Intent(HPressTagsorUpdatesActivity.this ,HPressSummariesActivity.class); 
          startActivity(intent); 
        }}); 
0

即使我有一個類似的問題,我有一個聯繫人列表,當我選擇用來獲取自動設置一個其他..

爲了解決這個問題,我添加了一個ArrayList和添加的位置被點擊的項目。在使用我的適配器的getView進行繪圖時,我曾經檢查它是否存在於我的數組列表中。

+0

是它的一個好主意和它的工作感謝幫助讓我實現它並張貼答案和代碼來幫助別人。 – UMAR

相關問題