-2

"this code works for string id less than 20 but grater than 1000 it returns -1. " "---MySpinner.setSelection(adapter.getPosition(new CustomSpinnerList(String.valueOf(id), name)));// Sample id="1254",name="Aaaaa aaa" ---------------------------------------------------------

private void setADivisions(int divisional_id) {
    DatabaseHelper myDb= new DatabaseHelper(this);
    ArrayList<CustomSpinnerList> MyArrList = new ArrayList<>();
    Spinner MySpinner = (Spinner)findViewById (R.id.spinnerDivision);
    List<SysDivisionTable> 

MyList=myDb.get_all(Integer.valueOf(divisional_id));
        int id=0;
        String name="";
        myDb.closeDB();
        for(SysDivisionTable MyTable:MyList) {
            if(MyTable.Get_col_A_division_id()==current_Adiv_id) { 
                id=MyTable.Get_col_A_division_id();//="1245"
                name=MyTable.Get_col_A_division_name();="Aaaaa aaa"
            }
            MyArrList.add(new CustomSpinnerList(String.valueOf(MyTable.Get_col_A_division_id()), MyTable.Get_col_A_division_name()));
        }

    ArrayAdapter<CustomSpinnerList> adapter = new ArrayAdapter<CustomSpinnerList>(this, android.R.layout.simple_spinner_dropdown_item, MyArrList);
    Log.d("D01", "adapter.String.valueOf(id) "+ String.valueOf(id)+ " *** "+name);
    Log.d("D02", "adapter.getPosition"+ adapter.getPosition(new CustomSpinnerList(String.valueOf(id), name)));

    MySpinner.setAdapter(adapter);
    MySpinner.setSelection(adapter.getPosition(new CustomSpinnerList(String.valueOf(id), name)));// Sample    id="1254",name="Aaaaa aaa"
}



    public class CustomSpinnerList {
        private String id; 
        private String name;

        public CustomSpinnerList(String id, String name) {
            this.id = id;
            this.name = name;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public String toString() {
            return name;
        }
        @Override
        public boolean equals(Object obj) {
            if(obj instanceof CustomSpinnerList){
                CustomSpinnerList c = (CustomSpinnerList)obj;
                if(c.getName().equals(name) && c.getId()==id ) return true;
            }
            return false;
        }
    }
UmarZaii
  • 1,355
  • 1
  • 17
  • 26

1 Answers1

0

Replace ==(Address Comparison) with equals() (Value Comparison)

        @Override
        public boolean equals(Object obj) {
            if(obj instanceof CustomSpinnerList){
                CustomSpinnerList c = (CustomSpinnerList)obj;
                if(c.getName().equals(name) && c.getId().equals(id) ) return true;
            }
            return false;
        }
Rajan Kali
  • 12,627
  • 3
  • 25
  • 37