java - 如何解决 Textview setText() 在空对象引用上
问题描述
所以我得到这个错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
我运行了调试工具,这些行是空的:
TextView leftMessageView = (TextView) row.findViewById(R.id.leftmsgr);
leftMessageView.setText(Servermessage);
这是它的来源:
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View row;
LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ChMessage chMessageObj = getItem(position);
if (chMessageObj.left) {
row = inflater.inflate(R.layout.leftmessage, parent, false);
}else{
row = inflater.inflate(R.layout.rightmessage, parent, false);
}
TextView rightMessageView = (TextView) row.findViewById(R.id.rightmsgr);
TextView leftMessageView = (TextView) row.findViewById(R.id.leftmsgr);
rightMessageView.setText(chMessageObj.message);
leftMessageView.setText(Servermessage);
return row;
}
不知道为什么它不为空?
任何帮助都会很棒!
谢谢
解决方案
尝试NullPointerException
使用以下代码修复:
public View getView(int position, View convertView, @NonNull ViewGroup parent)
{
View row;
LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ChMessage chMessageObj = getItem(position);
if (chMessageObj.left) {
row = inflater.inflate(R.layout.leftmessage, parent, false);
}else{
row = inflater.inflate(R.layout.rightmessage, parent, false);
}
TextView rightMessageView = (TextView) row.findViewById(R.id.rightmsgr);
TextView leftMessageView = (TextView) row.findViewById(R.id.leftmsgr);
if (rightMessageView!=null) {
rightMessageView.setText(chMessageObj.message);
}
if (leftMessageView!=null) {
leftMessageView.setText(Servermessage);
}
return row;
}
然后,我不认为 TextView 为空是正确的。检查您的 XML 布局。希望能帮助到你。
推荐阅读
- python - 模块化猜猜游戏循环
- java - 在多项目 gradle 设置中引用子项目的主类
- html - 自动更改数组中元素的类型
- python-3.x - 如何通过 pandas `df.to_sql()` 在已创建的数据库表中插入值
- ios - 如何修复崩溃“UIStatusBarDisplayItemState updatePlacement”?
- wxwidgets - GhostBSD/FreeBSD GNOME 崩溃
- java - 如何访问由构造函数生成的对象变量
- reactjs - React 中的响应式背景图像
- snakemake - 在多个集群环境(LSF、SGE)中具有 mem_mb 资源的 Snakemake 集群命令
- python - 每当我的 MySQL 数据库更改(插入)时,是否可以向我的 python 应用程序发送实时通知?