2012-07-11 53 views
0

我在gridview的每個單元格中都有2個圖像。第一張圖片不可見,第二張圖片可見。我想要的是當我長時間點擊gridview的任何項目時,不可見的圖像應該可見。謝謝。長時間點擊以使圖像在gridview中可見

myGrid.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) { 
      DELETE_SIT=1; 

      //Toast.makeText(FavorilerAct.this,"long click"+DELETE_SIT, Toast.LENGTH_SHORT).show(); 
      ((BaseAdapter)myGrid.getAdapter()).notifyDataSetChanged(); 

      return true; 
     } 
    }); 

//這是在自定義適配器我getview方法延伸BaseAdapter

public View getView(int position, View convertView, ViewGroup parent) 
     { 
      View MyView = convertView; 
      String url = stock_list.get(position); 

     if (convertView == null) 
     { 
     LayoutInflater li = getLayoutInflater(); 
     MyView = li.inflate(R.layout.gridview, null); 

     // Add The Text!!! 
     TextView tv = (TextView)MyView.findViewById(R.id.favorite_author); 
     tv.setText(names.get(position)); 
     ImageView img=(ImageView)MyView.findViewById(R.id.favorite_image); 
     ImageView artiImg=(ImageView)MyView.findViewById(R.id.delete_fav_btn); 
     if(DELETE_SIT!=1) 
      artiImg.setVisibility(View.INVISIBLE); 
     else 
      artiImg.setVisibility(View.VISIBLE); 
     try { 
      img.setImageBitmap(loadBitmap(url)); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     if(DELETE_SIT==1){ 
      //ImageView delete_btn=(ImageView)MyView.findViewById(R.id.delete_fav_btn); 
      //artiImg.setImageResource(R.drawable.kapat); 
      artiImg.setVisibility(View.VISIBLE); 
     } 
     } 

     return MyView; 
    } 
+2

什麼是你的問題? – 2012-07-11 08:16:34

+0

當我使用長時間的gridview,第二個圖像是不可見的是不可見的。 – Emilla 2012-07-11 08:19:11

+0

和你的代碼在哪裏? – 2012-07-11 08:20:02

回答

0

好吧,只是儘量smthing這樣的:

public View getView(int position, View convertView, ViewGroup parent) 
{ 
     View vi= convertView; 
     String url = stock_list.get(position); 
     ViewHolder holder = null; 

     if (vi == null) 
     { 
      LayoutInflater li = getLayoutInflater(); 
      vi = li.inflate(R.layout.gridview, null); 
      holder = new ViewHolder(); 

      holder.tv = (TextView)vi.findViewById(R.id.favorite_author); 
      holder.img=(ImageView)vi.findViewById(R.id.favorite_image); 
      holder.artiImg=(ImageView)vi.findViewById(R.id.delete_fav_btn); 

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

     holder.tv.setText(names.get(position)); 

     if(DELETE_SIT!=1){ 
      try { 
       holder.img.setImageBitmap(loadBitmap(url)); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      holder.img.setVisibility(View.VISIBLE); 
      holder.artiImg.setVisibility(View.INVISIBLE); 
     } 
     else{ 
      holder.img.setVisibility(View.INVISIBLE); 
      holder.artiImg.setVisibility(View.VISIBLE); 
     } 

    } 

    return vi; 
} 

static class ViewHolder{ 
    public TextView tv; 
    public ImageView img; 
    public ImageView artiImg; 
} 

讓我知道如果你還有問題。

+0

我不明白爲什麼我需要知道每個單元格的狀態。我只需要長時間點擊任何單元格,然後所有單元格都會有第二個圖像。 – Emilla 2012-07-11 09:22:17

+0

@Emilla哦,好的,謝謝,我沒有明白!當我有空時,我會編輯我的帖子 – AMerle 2012-07-11 09:36:27

+0

@Emilla爲什麼不在任何地方改變ImageView「img」的可見性? – AMerle 2012-07-11 09:51:23