';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用
我将在我的片段上添加一些(测试)listview,但应用程序立即崩溃。这是代码';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用,android,listview,android-fragments,nullpointerexception,Android,Listview,Android Fragments,Nullpointerexception,我将在我的片段上添加一些(测试)listview,但应用程序立即崩溃。这是代码 public class ListPassword extends Fragment { private String accountID , masterUsername; private ListView lv; private TextView masterUsernameTXT; private String[][] showingData; String[] title = { "a" , "b" , "
public class ListPassword extends Fragment {
private String accountID , masterUsername;
private ListView lv;
private TextView masterUsernameTXT;
private String[][] showingData;
String[] title = { "a" , "b" , "c" , "d" , "e" };
String[] description = { "aaa" , "bbb" , "ccc" , "ddd" , "eee" };
String[] updateDate = { "000" , "111" , "222" , "333" , "444" };
int recordRow = 0;
public static ListPassword newInstance() {
ListPassword fragment = new ListPassword();
return fragment;
}
public ListPassword() { }
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_listpassword, container, false);
String[] title = { "a" , "b" , "c" , "d" , "e" };
String[] description = { "aaa" , "bbb" , "ccc" , "ddd" , "eee" };
String[] updateDate = { "000" , "111" , "222" , "333" , "444" };
lv = (ListView)rootView.findViewById(R.id.listview_password);
SpinnerAdapt adapter = new SpinnerAdapt(getActivity(),title, description, updateDate);
lv.setAdapter(adapter);
return rootView;
}
我试图通过阅读logcat来解决这个问题,并发现了以下错误
致命异常:主
进程:com.example.new_ang_ja_kai_la.masterpassword,PID:21591
java.lang.NullPointerException:尝试调用虚拟方法“void”
空值上的android.widget.TextView.setText(java.lang.CharSequence)“”
对象引用
在com.example.new_ang_ja_kai_la.masterpassword.spinneradap.getCustomView(spinneradap.java:63)上
SpinnerAdapt如下所示(我从我的朋友那里得到的)
当我调试完这个。上面说
错误发生在“lv”行=
(ListView)rootView.findViewById(R.id.ListView_密码);“
调试完成时显示lv的值为空
我不知道如何解决这个问题,因为我已经检查了R.id.listview\u密码是否是正确的引用(通过ctrl+单击它),所以我可以已经放置了指针
我已签出解决方案,但没有任何帮助。您可以在错误消息中看到,您的应用程序正在SpinnerAdapter类的第63行崩溃。因此,请张贴这个类的代码,以便我们可以帮助你 编辑: 不带支架试一试:
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(activity);
convertView = inflater.inflate(R.layout.item_listview_storedpassword, parent, false);
}
TextView rowTitle= (TextView) convertView.findViewById(R.id.passwordTitle);
TextView rowDescription = (TextView) convertView.findViewById(R.id.passwordDescription);
TextView rowUpdateDate = (TextView) convertView.findViewById(R.id.passwordDescription);
if(rowTitle != null) rowTitle.setText(title[position]);
if(rowDescription != null) rowDescription.setText(description[position]);
if(rowUpdateDate != null) rowUpdateDate.setText(updateDate[position]);
return convertView;
错误发生在“lv=(ListView)rootView.findViewById(R.id.ListView_密码);”行“^很抱歉立即输入。我找不到编辑按钮。Sry;-;您询问的代码将很快出现在下一个评论部分。谢谢你的帮助我已经编辑了这篇文章。Thx for your support即使没有保持器,TextView仍然可以为null。将其更改为检查null指针。实际上,错误发生在spinneradap.java的第63行
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(activity);
convertView = inflater.inflate(R.layout.item_listview_storedpassword, parent, false);
}
TextView rowTitle= (TextView) convertView.findViewById(R.id.passwordTitle);
TextView rowDescription = (TextView) convertView.findViewById(R.id.passwordDescription);
TextView rowUpdateDate = (TextView) convertView.findViewById(R.id.passwordDescription);
if(rowTitle != null) rowTitle.setText(title[position]);
if(rowDescription != null) rowDescription.setText(description[position]);
if(rowUpdateDate != null) rowUpdateDate.setText(updateDate[position]);
return convertView;