2014-12-31 2 views
0

Я создаю приложение, похожее на instagram, только для целей обучения, и в основном у меня есть список изображений, которые я заполняю через адаптер сетки. В моем XML-файле для «single_list_item» я определил кнопку, которая будет добавлена ​​вместе с изображением для каждого отдельного элемента в списке видов сетки.Android: Элементы Gridview и внесение изменений в отдельные элементы

Тем не менее, я хочу, чтобы на этих кнопках можно было нажимать эти кнопки, чтобы поместить их на отдельные изображения отдельно (аналогично системе, подобной системе instagram). Другими словами: пользователь может разместить подобное на первом изображении, а не как остальные изображения. Я показываю подобное, используя другой ресурс изображения.

Изображения получают заселена табличном

Каждое изображение имеет Like кнопку под ней

я нажимаю на случайных, как кнопки, принадлежащие к определенному изображению

должен быть выбран этот образ как 'понравилось'

То, что я пытался до сих пор:

Мой адаптер сетки:

public class ProductGridInflator extends ArrayAdapter<Product>{ 

....... 
....... 

@Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

View child = convertView; 
     final RecordHolder holder; 
     LayoutInflater inflater = ((Activity) ctx).getLayoutInflater(); 

    if (child == null) {    
     child = inflater.inflate(R.layout.grid_single, parent, false); 
     holder = new RecordHolder(); 
     holder.productName = (TextView) child.findViewById(R.id.grid_text); 
     holder.image = (ImageView) child.findViewById(R.id.grid_image); 
     holder.heartButton = (ImageButton) child.findViewById(R.id.btnHeartLike); 
     holder.heartButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if (v.isSelected()){ 
        v.setSelected(false); 
       } else { 
        holder.heartButton.setSelected(false); 
        v.setSelected(true); 
        } 
       } 
      }); 
      child.setTag(holder); 
     }else{ 
      holder = (RecordHolder) child.getTag(); 
     } 
    } 
} 

И я выбрать соответствующее изображение из селектора (избранное или нежелательно)

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 

     <item android:drawable="@drawable/heart_clicked" android:state_selected="true"/> 
     <item android:drawable="@drawable/heart304"/> 

    </selector> 

Однако этот код, когда я плохо себя проверить. Когда я нажимаю на кнопку типа определенного элемента списка изображений, нажимают на две или три кнопки, похожие на элементы списка. Есть ли лучший способ сделать это? Индивидуальные кнопки для каждого элемента списка?

ответ

0

Проблема заключается в том, что вы повторно в onclicklisteners .. Удалить это из вашего getView

holder.heartButton.setOnClickListener(new OnClickListener() { 

И вместо того, чтобы писать в своей деятельности

YouGridView.setOnItemClickListener 

И добавить то, что вы хотите делать, когда пункт щелчок.

+0

Проблема в том, что у меня уже есть OnItemClickListener для моего gridview, который переводит пользователя на другую страницу. Поэтому, когда я нажимаю на изображение, приложение выводит пользователя на другую страницу, чтобы увеличить и показать изображение. – Pjayness