0

グリッドビューの各セルに 2 つの画像があります。最初の画像は非表示で、2 番目の画像は表示されます。私が欲しいのは、グリッドビューの任意のアイテムをロングクリックすると、目に見えない画像が表示されるはずです。ありがとうございます。

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;
   }
4

1 に答える 1

0

わかりました、これを試してみてください:

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;
}

問題が解決しない場合はお知らせください。

于 2012-07-11T09:08:30.917 に答える