gpt4 book ai didi

java - ListView 未加载,在 textview.setText() 上返回 null 对象;

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

这是我的自定义适配器代码。我收到一个错误,我的 textView.setText() 为 null

“尝试在空对象引用上调用虚拟方法 'void android.widget.TextView.setText(java.lang.CharSequence)'”

我通常从数据库中检索数据,但现在我使用硬编码字符串只是为了检查问题是否出在数据库上,但问题仍然存在于硬编码字符串中。

public class CardViewAdapter extends BaseAdapter {

Context context;
List<Note> notes;

TextView cardTitleText;
TextView cardDescriptionText;
TextView cardDateText;
ImageView cardImage;

public CardViewAdapter(Context context, ArrayList<Note> notes) {
this.context = context;
this.notes = notes;
}

@Override
public int getCount() {
return notes.size();
}

@Override
public Object getItem(int position) {
return notes.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.card_view, parent, false);

cardTitleText = (TextView) view.findViewById(R.id.titleTextCardView);
cardDescriptionText = (TextView) view.findViewById(R.id.descriptionTextView);
cardDateText = (TextView) view.findViewById(R.id.dateTextCardView);
cardImage = (ImageView) view.findViewById(R.id.cardImage);

Note note = notes.get(position);
Log.v("NOTE", note.getTitle() + " " + note.getDescription() + " " + note.getDate());

cardTitleText.setText("Title");
cardDescriptionText.setText("Description");
cardDateText.setText("Date");

return view;
}
}

这是我的card_view布局(我的listView的项目布局):

<RelativeLayout
android:id="@+id/relativeLayoutCardView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/relative_layout"
android:elevation="6dp"
xmlns:android="http://schemas.android.com/apk/res/android" >

<TextView
android:id="@+id/titleTextCardView"
android:layout_below="@+id/frameLayoutCardView"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingTop="10dp"
android:text="Example Title"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:id="@+id/descriptionTextCardView"
android:layout_alignParentLeft="true"
android:layout_below="@+id/titleTextCardView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:text="Example description"
android:textSize="13sp"
android:textStyle="bold" />

<FrameLayout
android:id="@+id/frameLayoutCardView"
android:layout_height="130dp"
android:layout_width="fill_parent">

<ImageView
android:id="@+id/cardImage"
android:layout_height="130dp"
android:layout_width="fill_parent"
android:scaleType="fitXY"
android:src="@drawable/placeholder" />

<TextView
android:id="@+id/dateTextCardView"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Example date" />
</FrameLayout> </RelativeLayout>

我知道这可能是一个愚蠢且容易解决的问题,但我只是不停地敲头,因为我不知道如何解决它,因为我看不到我的 TextView 怎么会为空。

最佳答案

您的 XML 中有一个拼写错误...此行引用了您的 XML 中不存在的元素:

cardDescriptionText = (TextView) view.findViewById(R.id.descriptionTextView);

我认为应该是:

cardDescriptionText = (TextView) view.findViewById(R.id.descriptionTextCardView);

基于 XML 元素:

<TextView
android:id="@+id/descriptionTextCardView"
android:layout_alignParentLeft="true"
android:layout_below="@+id/titleTextCardView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:text="Example description"
android:textSize="13sp"
android:textStyle="bold" />

关于java - ListView 未加载,在 textview.setText() 上返回 null 对象;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156215/

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