Ich habe versucht, indem Sie diesem Tutorial einen mehrspaltigen Listenansicht zu erstellen:Eine Reihe in der Listenansicht ändert sich, wenn gescrollt (Android Studio)
http://techlovejump.com/android-multicolumn-listview/.
Das Problem trat auf, wenn die Anzahl der Datensätze so groß war, dass die gesamte Ansicht den Bildschirm eines Telefons überschritt. Jetzt, wenn ich scrolle, ändern sich alle Datensätze in einer der Zeilen (ihre Werte werden geändert). Alle anderen Reihen sind vollkommen in Ordnung. Was könnte das Problem sein?
public class ListViewAdapters extends BaseAdapter{
public ArrayList<HashMap<String, String>> list;
Activity activity;
TextView txtFirst;
TextView txtSecond;
TextView txtFourth;
public ListViewAdapters(Activity activity, ArrayList<HashMap<String, String>> list){
super();
this.activity=activity;
this.list=list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
HashMap<String, String> map=list.get(position);
LayoutInflater inflater=activity.getLayoutInflater();
if(convertView == null)
{
if(map.get(MARKED)=="no")
{
convertView=inflater.inflate(R.layout.colmn_row, null);
}
else if (map.get(MARKED)=="yes")
{
convertView=inflater.inflate(R.layout.colmn_row_clicked, null);
}
txtFirst=(TextView) convertView.findViewById(R.id.name);
txtSecond=(TextView) convertView.findViewById(R.id.gender);
txtFourth=(TextView) convertView.findViewById(R.id.status);
}
txtFirst.setText(map.get(FIRST_COLUMN));
txtSecond.setText(map.get(SECOND_COLUMN));
txtFourth.setText(map.get(FOURTH_COLUMN));
return convertView;
}
}
Zeilen werden changing..means Ist Artikel Position geändert werden? –
Ihre Werte sind geändert. – Mike
Versuchen Sie mit 'Holder' und Override' getItemViewType() 'und' getViewTypeCount() 'Methoden von BaseAdapter –