2015-09-29 3 views
0

Я установил свой флажок Видимость для «Gone» в моем XML-файле, и я хочу отобразить его, когда я перехожу на OnItemLongListnere, на мой GridView, другими словами, если у меня есть 8 фото в моем gridView, я хочу отобразить этот CheckBox для каждой фотографии! БлагодаряCheckBox unhide on GridView

Мой GridViewAdapter

public class GridViewAdapter extends BaseAdapter { 
// Declare variables 
ImageView image; 
private Activity activity; 
private String[] filepath; 
private String[] filename; 

private static LayoutInflater inflater = null; 

public GridViewAdapter(Activity a, String[] fpath, String[] fname) { 
    activity = a; 
    filepath = fpath; 
    filename = fname; 
    inflater = (LayoutInflater) activity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

} 


public int getCount() { 
    return filepath.length; 

} 

public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 


public View getView(int position, View convertView, ViewGroup parent) { 
    View vi = convertView; 
    if (convertView == null) 
     vi = inflater.inflate(R.layout.gridview_item, null); 
    // Locate the TextView in gridview_item.xml 
    TextView text = (TextView) vi.findViewById(R.id.text); 
    // Locate the ImageView in gridview_item.xml 
    image = (ImageView) vi.findViewById(R.id.grid_image); 

    // Set file name to the TextView followed by the position 
    File file = new File(filepath[position]); 
    Picasso.with(activity).load(file).placeholder(R.drawable.rtrt).fit().centerCrop().into(image); 


    // Decode the filepath with BitmapFactory followed by the position 


    // Set the decoded bitmap into ImageView 
    // image.setImageBitmap(bmp); 
    return vi; 
} 

}

+1

разместим ваш адаптер для просмотра сетки –

+0

я разместить его! :) –

+0

Мне нужен ваш XML-код 'R.layout.gridview_item' –

ответ

0

Возможно, это может вам помочь.

public class GridViewAdapter extends BaseAdapter { 
     // Declare variables 

     private Activity activity; 
     private String[] filepath; 
     private String[] filename; 

     private static LayoutInflater inflater = null; 

     public GridViewAdapter(Activity a, String[] fpath, String[] fname) { 
      activity = a; 
      filepath = fpath; 
      filename = fname; 
      inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     } 

     public int getCount() { 
      return filepath.length; 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      final Holder holder; 

      if (convertView == null) { 
       holder = new Holder(); 
       convertView = inflater.inflate(R.layout.gridview_item, null); 
       holder.image = (ImageView) convertView.findViewById(R.id.grid_image); 
       holder.text = (TextView) convertView.findViewById(R.id.text); 
       holder.ck = (CheckBox) convertView.findViewById(R.id.checkbox); 
       convertView.setTag(holder); 
      } else { 
       holder = (Holder) convertView.getTag(); 
      } 

      // Set file name to the TextView followed by the position 
      File file = new File(filepath[position]); 
      holder.ck.setVisibility(View.GONE); 
      Picasso.with(activity).load(file).placeholder(R.drawable.rtrt).fit().centerCrop().into(holder.image); 
      return convertView; 
     } 

     class Holder { 
      ImageView image; 
      TextView text; 
      CheckBox ck; 
     } 
    } 

и GridView LongClick

gridview.setOnItemLongClickListener(new OnItemLongClickListener() { 

    public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
      int position, long arg3) { 
     CheckBox ck = (CheckBox)arg1.findViewById(R.id.checkbox); 
     ck.setVisibility(View.VISIBLE); 
     return true; 
    } 
}); 
+0

Это просто, но если я не использую onLongItemClickListner, и я использую« public void onItemCheckedStateChanged »(режим android.view.ActionMode, int position, long id, boolean проверено) «что я могу сделать? –

+0

вы хотите скрыть или отобразить флажок при длинном нажатии элемента вида сетки –

+0

ok, я хочу показать этот флажок, но если я хочу изменить цвет выбранного изображения, на longClickeditem? –

0

получить ссылку флажок из макета gridview_item в адаптер и установить его видимость View.VISIBLE. Установите onlongclicklistener на родительский макет вашего макета gridview_item.