android - 在android中使用模型类获取列表数据

标签 android model

我有两个模型类 SpecialitySubSpeciality 。当我调用 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/

相关文章:

android - JobScheduler API 是否过度设计用于闹钟应用程序?

android - 任何人都可以解释服务 setForeground 方法吗?

android - 构建后 android phonegap 1.9 中未显示启动画面

android - ACTION_OPEN_DOCUMENT_TREE 和 uri 序列化

node.js - 在不同文件中为 Mongoose 需要另一个模型中的模型模式

php - 如何仅更新 Yii 中事件记录的特定字段?

android - 在imageview中拟合图像

python - 在 model.py 中的函数内进行 API 调用是否可以,为什么我的应用程序在执行此操作后速度减慢这么多?

mysql - 数据库结构——mySQL 是正确的选择吗?

javascript - 在 Angular 中设计模型