我有一个列表专业有75个项目有两个值id和名称。
private List specialties;
我想在不使用下面的循环的情况下获取名称
specialties.get(0).name;
我收到错误can't resolve name
。有没有办法从值列表中检索名称。
感谢。
答案 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();
}