ListView не показывает все данные? - PullRequest
0 голосов
/ 16 февраля 2012

Я сделал специальный Адаптер для списка, который я публикую здесь, но проблема в том, что он не показывает все элементы - только первый. Почему это? Он работал нормально, когда читал статическую строку [] из другого файла Java ...

public class MyList extends Activity {
/** Called when the activity is first created. */
ListView listView;
ProgressDialog pd;
String pas2s = "";
String user2s = "";
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);
    pas2s = getIntent().getExtras().getString("userthang");
    user2s = getIntent().getExtras().getString("passthang");
    listView = (ListView) findViewById(R.id.lv_country);
    String[] haha = {"Hi","Bye","Shy"};
    String[] bahaha = {"Bye","Hi","Lye"};
    listView.setAdapter(new EfficientAdapter(this,haha,bahaha));
    listView.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView<?> arg0, View view,int position, long arg3)      {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(),"You Selected Item     "+Integer.toString(position), Toast.LENGTH_LONG).show();          
        }       
    });
    }
}

Мой BaseAdapter это:

class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private String[] gradesName;
private String[] gradesVal;
public EfficientAdapter(Context context, String[] gradesname, String[] gradesval) {
    mInflater = LayoutInflater.from(context);
    gradesName = gradesname;
    gradesVal = gradesval;
}

public int getCount() {
    return CountriesList.abbreviations.length;
}

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

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

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.row, null);
        holder = new ViewHolder();
        holder.text1 = (TextView) convertView
                .findViewById(R.id.TextView01);
        holder.text2 = (TextView) convertView
                .findViewById(R.id.TextView02);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.text1.setText(gradesName[position]);
    holder.text2.setText(gradesVal[position]);

    return convertView;
}

static class ViewHolder {
    TextView text1;
    TextView text2;
}
}

1 Ответ

2 голосов
/ 16 февраля 2012

Вместо

public int getCount() {
    return CountriesList.abbreviations.length;
}

поставить

public int getCount() {
    return gradesName.length
}
...