當我填充一個ArrayAdapter時,首先屏幕的可見部分中的行將空白,除了第一行,這將是一個不希望的結果。然後,當我向下滾動,然後回來,所有的屏幕將被正確設置...請告訴我爲什麼會發生這種行爲?Android:爲什麼ArrayAdapter最初顯示null?
代碼:ArrayAdapter,內部類擴展到活動
homeListView = (ListView) findViewById(R.id.home_list);
homeArrayAdapter = new HomeListArrayAdapter(this, R.id.home_list,
homeList);
homeListView.setAdapter(homeArrayAdapter);
下部分爲類:
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.home, null);
}
Home item = (homeList).get(position);
if (item != null) {
if (item.type_text == Home.SIMPLE_SHOUT) {
TextView tv1 = (TextView) findViewById(R.id.hTextView01);
if (tv1 != null) {
tv1
.setText(String.format(" %s\t:",
item.friend_name));
final String item_friend_id_01 = String
.valueOf(item.users_id);
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast toast = Toast.makeText(Tranz.this,
item_friend_id_01, Toast.LENGTH_LONG);
toast.show();
}
});
}
TextView tv2 = (TextView) findViewById(R.id.hTextView02);
if (tv2 != null) {
tv2.setText(String.format("\t%s", item.message));
tv2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
TextView tv3 = (TextView) findViewById(R.id.hTextView03);
if (tv3 != null) {
tv3.setVisibility(0);
tv3.setText(null);
tv3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
ImageView imageView = (ImageView) findViewById(R.id.file_image);
if (imageView != null) {
imageView.setBackgroundDrawable(null);
}
} else if (item.type_text == Home.FILE_SHOUT) {
TextView tv1 = (TextView) findViewById(R.id.hTextView01);
中,情況已經截斷,所以整個代碼不會出現在這裏。對此我很抱歉。這裏我所嘗試的是將類Home中的值放入兩個textView和一個ImageView中,該值可能隨變量item.type_text返回的值不同而變化
另外如果有人能告訴我另一個最佳做法這個,請幫忙。
謝謝synic,但沒有工作......有一些錯誤我Inflater代碼行......但通過將膨脹代碼更改爲下面給出的代碼來解決它... LayoutInflater inflater = context.getLayoutInflater(); 查看視圖= inflater.inflate(R.layout.home_list,null); 我不知道發生了什麼事,但工作。 再次感謝您的幫助。 – 2010-03-03 06:14:22