GridView Darstellungsproblem

  • Antworten:0
NewAndroidGuy
  • Forum-Beiträge: 62

23.11.2012, 17:32:39 via Website

Hallo nochmals an alle:

Ich habe auch ein Problem in der Anzeige des Gridviews: Beim Srollen werden die Bilder an einem Feld auch in andere gesetzt und irgendwann
sind sie fast überall.

https://www.nextpit.de/de/android/forum/thread/458840/GridView-bringt-werte-durcheinander-und-zeigt-doppelte-werte
Er hatte fast den gleichen Fehler,doch den Fehler,den er gemacht hat hab ich nicht.





package net.cojobo.j_bruehl;

import java.util.Calendar;

import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;

class WeekAdapter extends BaseAdapter {
private Context context;
public StundenContent[] array;
static Calendar calendar = Calendar.getInstance();

public WeekAdapter(Context context,StundenContent[] array) {
this.context = context;
this.array = array;

}

public void setArray(StundenContent[] array) {

this.array = array;

}

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

LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View gridView;

if (convertView == null) {

gridView = inflater.inflate(R.layout.weekview, null);

if (position < 6) {

TextView textView1 = (TextView) gridView
.findViewById(R.id.textView1);
textView1.setText("" + array[position].weekarray);
textView1.setGravity(Gravity.CENTER);
textView1.setTextSize(30);


//textView1.setBackgroundColor(Color.parseColor("#ffffffff"));

} else {
TextView but = (TextView) gridView.findViewById(R.id.textView1);
but.setText("" + array[position].weekarray);
but.setGravity(Gravity.CENTER);



if(array[position].HA==true){

ImageView image = (ImageView) gridView.findViewById(R.id.Haalert);
image.setBackgroundResource(R.drawable.radiation);
}
}


}

else {

gridView = (View) convertView;

TextView textView1 = (TextView) gridView
.findViewById(R.id.textView1);
textView1.setText(array[position].weekarray);

if(array[position].HA==true){

ImageView image = (ImageView) gridView
.findViewById(R.id.Haalert);
image.setBackgroundResource(R.drawable.radiation);

}


}

return gridView;
}

public int getCount() {
return array.length;// stundenplan.gibAnzahlTageProWoche(stundenplan.aktiveWeek)*(stundenplan.laengsteTagesLaenge()+1);
}

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

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

private int ToLandViewArrayConverter(int Gridposition) {
int c = calendar.get(Calendar.DAY_OF_WEEK);
int ArraySpaceofNull = 0;

if (c == 1) {
c = 2;
} // if it is Sunday do nothing
else {
ArraySpaceofNull = c - 2;
} // else Monday is in the array the field one, but the day is i=2 this
// means everything minus 2

if (Gridposition == 0) {
return ArraySpaceofNull;
} else {
return (Gridposition * 6) + ArraySpaceofNull;
}
}

}

Antworten