MACMAN
MACMAN

Reputation: 1971

How to retrieve a value from list android

I have a list specialties having 75 items that has two values id and name.

 private List specialties;

I would like to get the name without using a loop something like below

 specialties.get(0).name;

I get an error saying can't resolve name. Is there any way to retrieve name from the values list.

Thanks.

Upvotes: 0

Views: 502

Answers (4)

AskNilesh
AskNilesh

Reputation: 69699

You have declared your list as private List specialties; you can not access it like this specialties.get(0).name;

You need declare your list like this private List<YourModelClass> specialties;

SAMPLE DEMO

If you want add model class in your list than than check this example
create model class like this

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;
    }
}

Now use like this in your list

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

To add data inside list like this

userArrayList.add(new User("Nilesh","[email protected]"));

To get data from your list use like this

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

or

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

}

Upvotes: 2

Thein Naing Oo
Thein Naing Oo

Reputation: 114

I want to suggest you. You should declare name with public access. If it is not public, use public getter and setter method.Call getName() method.

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();

Upvotes: 3

Ankita
Ankita

Reputation: 1149

Create a class (Model) to get and set the ID and Name property:-

 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;
        }
    }

In your Activity:-

Define a List having the ClassName type of objects.

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

Now access the property name like this:-

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

Upvotes: 6

nikeru8
nikeru8

Reputation: 202

try the following:

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;
    }
  }

and use

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());

hope it help.

Upvotes: 5

Related Questions