【发布时间】:2020-10-30 21:45:22
【问题描述】:
嗯,我正在做一个安卓应用程序。 我有一个 listView 来显示我的 Firebase 的数据,这个 listView 有带有 textView 和删除按钮的行,当我想删除某个数据时,我单击删除按钮但出现这个错误 java.lang.NullPointerException: Attempt to invoke virtual空对象引用上的方法 'void android.widget.TextView.setText(java.lang.CharSequence)'
CustomAdapterData.java
public View getView(final int position, View convertView, ViewGroup parent) {
Data data = new Data();
if(convertView == null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
assert inflater != null;
convertView = inflater.inflate(R.layout.list_data, null);
}
data.date = convertView.findViewById(R.id.date);
data.age = convertView.findViewById(R.id.age);
data.height = convertView.findViewById(R.id.height);
data.weight = convertView.findViewById(R.id.weight);
data.imc = convertView.findViewById(R.id.imc);
data.date.setText(list.get(position).getDate());
data.age.setText(list.get(position).getAge());
data.height.setText(list.get(position).getHeight());
data.weight.setText(list.get(position).getWeight());
data.imc.setText(list.get(position).getImc());
Button btDel = convertView.findViewById(R.id.btDelete);
btDel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Data data = new Data();
db.document(list.get(position).getDate())
.delete()
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d("MainActivity", "DocumentSnapshot successfully deleted!");
Toast.makeText(context, "Data deleted", Toast.LENGTH_LONG).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w("MainActivity", "Error deleting document", e);
Toast.makeText(context, "Data not deleted", Toast.LENGTH_LONG).show();
}
});
list.remove(list.get(position));
int pos = position;
if (position == list.size()){
pos = position - 1;
}
data.date.setText(list.get(pos).getDate()); <- the error appears here
data.age.setText(list.get(pos).getAge());
data.height.setText(list.get(pos).getHeight());
data.weight.setText(list.get(pos).getWeight());
data.imc.setText(list.get(pos).getImc());
Toast.makeText(context, "Data deleted", Toast.LENGTH_LONG).show();
}
});
return convertView;
}
【问题讨论】:
-
尝试删除数据 data = new Data();在 btDel.setOnClickListener 内
-
在哪一行抛出空指针?
-
在我放的代码中,但是在这一行 data.date.setText(list.get(pos).getDate());
-
我删除数据 data = new Data();现在它正在工作,谢谢 valentino
标签: java android arraylist android-listview textview