我打算在片段上放一些(测试)listview,但应用程序立即崩溃。这是代码。'void android.widget.TextView.setText(java.lang.CharSequence)'null对象引用
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:尝试调用虚拟方法“无效 android.widget.TextView.setText(java.lang中.CharSequence)”对空 对象引用 在com.example.new_ang_ja_kai_la.masterpassword.SpinnerAdapt.getCustomView(SpinnerAdapt.java:63)
和SpinnerAdapt是如下(我coppied这个从我的朋友)
public class SpinnerAdapt extends BaseAdapter {
private Activity activity;
private String[] title;
private String[] description;
private String[] updateDate;
//
public SpinnerAdapt(Activity activity, String[] title, String[] description, String[] updateDate) {
this.activity = activity;
this.title = title;
this.description = description;
this.updateDate = updateDate;
}
@Override
public int getCount() {
return title.length;
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
return getCustomView(i, view, viewGroup);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
holder holder;
if (convertView == null) {
// LayoutInflater inflater = (activity).getLayoutInflater();
LayoutInflater inflater = (LayoutInflater)activity.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.item_listview_storedpassword,null);
holder = new holder(convertView);
convertView.setTag(holder);
} else {
holder = (holder) convertView.getTag();
}
holder.rowTitle.setText(title[position]);
holder.rowDescription.setText(description[position]);
holder.rowUpdateDate.setText(updateDate[position]);
return convertView;
}
public class holder{
private TextView rowTitle;
private TextView rowDescription;
private TextView rowUpdateDate;
public holder(View v){
TextView rowTitle= (TextView) v.findViewById(R.id.passwordTitle);
TextView rowDescription = (TextView) v.findViewById(R.id.passwordDescription);
TextView rowUpdateDate = (TextView) v.findViewById(R.id.passwordDescription);
}
}
}
当我调试了这个。它说,...
错误的线路上出现 “LV = (ListView控件)rootView.findViewById(R.id.listview_password);”
它表明调试完成时,lv的值为空。
我不知道如何解决它,因为我已经检查过R.id.listview_password是正确的参考(按Ctrl +单击它),所以我可以把指针已经。
我已经检查了解决方案,但没有任何可以帮助我。
实际上,在SpinnerAdapt.java –