我有两个模型类 Speciality
和 SubSpeciality
。当我调用 getsubSpecialityList 时,它返回 NullpointerException
。
专业模型
public class Speciality
{
public String name;
public List<SubSpeciality> subSpecialityList;
public String getname()
{
return name;
}
public void setname(String name)
{
this.name = name;
}
public List<SubSpeciality> getsubSpecialityList()
{
return subSpecialityList;
}
public void setsubSpecialityList(List<SubSpeciality> subSpecialityList)
{
this.subSpecialityList = subSpecialityList;
}
}
子专业模型
public class SubSpeciality
{
public String name;
public String getnamesub()
{
return name;
}
public void setnamesub(String name)
{
this.name = name;
}
}
使用以下代码在两个模型中添加项目
List<Speciality> specialityList = new ArrayList<Speciality>();
List<SubSpeciality> subspecialityList = new ArrayList<SubSpeciality>();
Speciality spe = new Speciality();
spe.setname("Othopedic");
SubSpeciality sub= new SubSpeciality();
sub.setnamesub("---Select speciality---");
sub.setnamesub("1");
sub.setnamesub("2");
sub.setnamesub("3");
subspecialityList.add(sub);
spe.setsubSpecialityList(subspecialityList);
specialityList.add(spe);
在下面的代码中出现错误
for(int j= 0;j<specialityList.size();j++)
{
Toast.makeText(RegisterActivity.this,specialityList.get(j).getsubSpecialityList().get(j).getnamesub()+"hii",Toast.LENGTH_SHORT).show();
}
Logcat 输出:
FATAL EXCEPTION: main Process: careers.app.com.jobssearch, PID: 29880
java.lang.NullPointerException
at careers.app.com.jobssearch.Activity.RegisterActivity$getSpeciality.onPostExecute(RegisterActivity.java:320)
at careers.app.com.jobssearch.Activity.RegisterActivity$getSpeciality.onPostExecute(RegisterActivity.java:263)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5072)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
最佳答案
这里是错误
specialityList.get(j).getsubSpecialityList().get(j)
您假设两个数组的大小相同,但有时不可能。。
所以你的代码应该是
for(int j= 0;j<specialityList.size();j++)
{
for(int k=0;k<specialityList.get(j).getsubSpecialityList().size();k++)
Toast.makeText(getActivity(),specialityList.get(j).getsubSpecialityList().get(k).getnamesub()+"hii",Toast.LENGTH_SHORT).show();
}
关于android - 在android中使用模型类获取列表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495894/