如何从列表android中检索值

时间:2018-03-29 06:03:33

标签: android list

我有一个列表专业有75个项目有两个值id和名称。

 private List specialties;

我想在不使用下面的循环的情况下获取名称

 specialties.get(0).name;

我收到错误can't resolve name。有没有办法从值列表中检索名称。

感谢。

4 个答案:

答案 0 :(得分:6)

创建一个类(Model)来获取和设置ID和Name属性: -

 public class ClassName {

        private String id;
        private String name;

        public ClassName(String mId, String mName){
            this.id=mId;
            this.name=mName;
        }
        public String getName() {
            return name;
        }
        public void setName(String sName) {
            this.name = sName;
        }
        public String getId() {
            return id;
        }
        public void setId(String sId) {
            this.id = sId;
        }
    }

在您的活动中: -

定义具有 ClassName 类型对象的列表。

List<ClassName> mList = new ArrayList<>();

现在访问属性名称,如下所示: -

mList.get(0).getName();
mList.get(0).getId();

答案 1 :(得分:5)

尝试以下方法:

public class Clone {

    private int Id;
    private String name;

    public int getId() {
        return Id;
    }
    public String getName() {
        return name;
    }
    public void setId(int id) {
        Id = id;
    }
    public void setName(String name) {
        this.name = name;
    }
  }

并使用

private List<Clone> arrayList = new ArrayList();

for (int i = 0; i < 10; i++) {
            Clone helloItem = new Clone();
            helloItem.setId(i);
            helloItem.setName("I'm Clone no - " + i);
            arrayList.add(helloItem);
        }

        Log.d("check", "get item - " + arrayList.get(0).getName());
希望它有所帮助。

答案 2 :(得分:3)

我想建议你。您应该声明具有公共访问权限的名称。如果它不是公共的,请使用public getter和setter method.Call getName()方法。

public class YourClass{

 private int id;
 private String name;

  public YourClass(int id, String name) {
        this.id = id;
        this.name = name;
    }

 public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

 }

 private List<YourClass> specialties = new ArrayList<YourClass>;
 ...//add data into list...
 specialties.add(new YourClass( 1 , "John")); 

  ...// retrieve data 
 specialties.get(position).getName();

答案 3 :(得分:2)

您已将自己的列表声明为 private List specialties; ,但您无法像 specialties.get(0).name;

那样访问它

您需要将此列表声明为 private List<YourModelClass> specialties;

示例演示

如果您想在列表中添加模型类而不是检查此示例
像这样创建模型类

public class User {
    String name, email;

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

现在在列表中使用这样的

List<User> userArrayList= new ArrayList<>();

在此列表中添加数据

userArrayList.add(new User("Nilesh","abc@gmail.com"));

要从列表中获取数据,请使用

userArrayList.get(0).getEmail();
userArrayList.get(0).getEmail();

for (int i=0;i<userArrayList.size();i++){
    userArrayList.get(i).getName();
    userArrayList.get(i).getEmail();

}