Die erste Schaltfläche von Android GridView funktioniert nichtAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Die erste Schaltfläche von Android GridView funktioniert nicht

Post by Guest »

Ich habe seltsame Probleme mit Android GridView. Ich erstelle ein 3x4-Raster und füge Schaltflächen in dieses Raster ein. Ich möchte, dass sich der Hintergrund der Schaltfläche ändert, wenn der Benutzer auf diese Schaltfläche klickt. Und das funktioniert bei allen Tasten außer der ersten (die mit dem Index 0 – oben links) einwandfrei. Der OnClick-Ereignis-Listener wird für diese Schaltfläche überhaupt nicht ausgelöst, egal was ich tue.

Hier ist der Code, mit dem ich die Ansicht erstelle:

Code: Select all

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

if (convertView == null) {  // if it's not recycled, initialize some attributes
Log.w("NOVO", "narejena nova celica");
imageView = new Button(mContext);

imageView.setPadding(8, 8, 8, 8);
} else {
Log.w("STARO", "stara celica");
imageView = (Button) convertView;
}

imageView.setEnabled(true);

int visina = parent.getHeight();
int sirina = parent.getWidth();

float dip = mContext.getResources().getDisplayMetrics().density;
float margin = 10*dip;

int view_height = (int)(visina - 3*margin)/4;
int view_width = (int)(sirina - 2*margin)/3;

int view_dim = 0;
if (view_height = 2)
return;

odkrit = true;
buttonsVisible++;
tim = new Timer();
tim.schedule(new timerDone(), millis);

((Activity)con).runOnUiThread(new Runnable() {
@Override
public void run() {
but.setBackground(slikca2);
}
});

}

void setButton(Button b) {
but = b;

((Activity)con).runOnUiThread(new Runnable() {
@Override
public void run() {
but.setBackground(slikca1);
}
});
}

class timerDone extends TimerTask {

@Override
public void run() {
if (!najden) {
odkrit = false;

((Activity)con).runOnUiThread(new Runnable() {
@Override
public void run() {
but.setBackground(slikca1);
}
});
}

buttonsVisible--;
tim.cancel();
}

}

@Override
public void onClick(View v) {
celicaVisible(4000);
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post