gpt4 book ai didi

android - ListView 文本消失

转载 作者:行者123 更新时间:2023-11-30 03:45:46 24 4
gpt4 key购买 nike

我制作了自定义 ListView ,它从手机存储中加载了很多东西,当我向下滚动 ListView 时,文本会像这样消失:

enter image description here

然后,如果我向上滚动,可见的文本也会消失,使用经典 ListView 会显示所有文本。这是我的适配器代码:

public MusicAdapter(Context context, int layoutResourceId, ListView data[]){
super();
mContext = context;

this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}

public int getCount() {
return count;
}

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

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

public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ListViewHolder holder = null ;
String id = null;

if(row == null){
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.listview_item_row, parent, false);
holder = new ListViewHolder();
music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
musiccursor.moveToPosition(position);
id = musiccursor.getString(music_column_index);
holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
holder.txtTitle.setText(id);
holder.imgIcon.setImageResource(R.drawable.musicc);
row.setTag(holder);
} else {
holder = (ListViewHolder)row.getTag();
}
holder.txtTitle.setVisibility(View.VISIBLE);
holder.txtTitle.setText(id);
holder.imgIcon.setImageResource(R.drawable.musicc);
return row;
}

和行:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">

<ImageView android:id="@+id/imgIcon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="15dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" />

<TextView android:id="@+id/txtTitle"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:textStyle="bold"
android:textSize="22dp"
android:textColor="#000000"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" />

</LinearLayout>

主.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/PhoneMusicList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:scrollingCache="false"
>
</ListView>

</LinearLayout>

最佳答案

您需要将此代码移到 if 语句之外(上方或下方):

music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
musiccursor.moveToPosition(position);
id = musiccursor.getString(music_column_index);

否则,当您的代码运行到 else 分支时,idnull

关于android - ListView 文本消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043684/

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