2016-04-19 15 views
0

Ist es möglich, mehrere ImageViews zu ändern, die in einer GridView gespeichert sind, indem Sie auf eine einzelne Zelle klicken? Dies ist ein Teil der Hauptaktivität, die mich beunruhigt.Ändern mehrerer GridView-Zellen durch Klicken auf eine einzelne Zelle

tablicaBrodova.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     ImageView img = (ImageView) view; 

      //SOME OTHER CODE 

         case 1: 
          if ((provjeriStupac(temp) <= 6)) { 

           pozicije1[temp + 1] = 1; 
           pozicije1[temp + 2] = 1; 
           pozicije1[temp + 3] = 1; 

           for (int k=0;k<=3;k++) 
           { 
            position=temp+k; 
            img.setImageResource(R.drawable.postavljen); 
           } 

Dies ist der Teil, der mich (die for-Schleife) plagt. Ich habe versucht, die Position zu ändern und dann ImageView zu ändern, aber es scheint nicht zu funktionieren. Ist das überhaupt möglich? Irgendeine andere Möglichkeit, dies zu tun? Ich habe etwas über performItemClick gelesen, weiß aber nichts darüber.

Temp ist die vorherige Position geklickt gespeichert, und pozicije1 ist ein Array, das meine Daten speichert.

Das ist mein Bild Adapter:

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public Integer[] celije = new Integer[100]; 



public ImageAdapter (Context c){ 
    mContext = c; 

for (int i=0; i<100; i+=1){ 
    celije[i] = R.drawable.kockica; 
    } 
} 


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


public Object getItem(int position){ 
    return celije[position]; 
} 


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


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

    ImageView imageView = new ImageView(mContext); 

    imageView.setImageResource(android.R.color.darker_gray); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setLayoutParams(new GridView.LayoutParams(50,50)); 

    return imageView; 
} 


} 

Und mein Layout-Datei:

 <?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="5dp" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:paddingTop="5dp" 
    tools:context="com.marijannovak.potapanjebrodovazavrsni.Ploca1"> 

    <ListView 
     android:layout_width="150dp" 
     android:layout_height="wrap_content" 
     android:id="@+id/listaBrodova" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <GridView 
     android:layout_width="340dp" 
     android:layout_height="340dp" 
     android:id="@+id/tablicaBrodova" 
     android:numColumns="10" 
     android:columnWidth="30dp" 
     android:background="@android:color/white" 
     android:horizontalSpacing="1dp" 
     android:verticalSpacing="1dp" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@+id/listaBrodova" 
     android:layout_toEndOf="@+id/listaBrodova" 
     android:layout_marginLeft="40dp" 
     android:layout_marginRight="10dp"/> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="X" 
     android:id="@+id/reset" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:onClick="reset"/> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text=">" 
     android:id="@+id/dalje" 
     android:layout_below="@+id/reset" 
     android:layout_alignLeft="@+id/reset" 
     android:layout_alignStart="@+id/reset" 
     android:onClick="dalje"/> 

</RelativeLayout> 

Antwort

0

es

Gelöst
int p = position; 

tablicaBrodova.getChildAt(p).setBackgroundResource(R.drawable.postavljen); 
tablicaBrodova.getChildAt(p + 1).setBackgroundResource(R.drawable.postavljen); 
tablicaBrodova.getChildAt(p + 2).setBackgroundResource(R.drawable.postavljen); 
Verwandte Themen