gpt4 book ai didi

java - Android:为什么ArrayAdapter一开始显示null?

转载 作者:行者123 更新时间:2023-11-29 06:22:43 24 4
gpt4 key购买 nike

当我填充一个 ArrayAdapter 时,首先屏幕可见部分的行将是空白的,除了第一行,这将是一个不希望的结果。然后当我向下滚动然后返回时,所有屏幕都将正确设置...请有人告诉我为什么会发生这种情况?

代码:

        homeListView = (ListView) findViewById(R.id.home_list);
homeArrayAdapter = new HomeListArrayAdapter(this, R.id.home_list,
homeList);
homeListView.setAdapter(homeArrayAdapter);

下一部分作为扩展 ArrayAdapter 的类,Activity 的内部类:

    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 返回的值而异

此外,如果有人可以告诉我执行此操作的另一种最佳做法,请提供帮助。

最佳答案

我不确定这是否是问题所在,但也许这会有所帮助。

我看到您将 null 作为第二个参数传递给 LayoutInflater.inflate。也许如果你传递父级(这是作为第三个参数传递给 getView() 的 ViewGroup,可能是你的 ListView)你会得到更好的结果。

关于java - Android:为什么ArrayAdapter一开始显示null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com