2015-01-06 5 views
-1

Привета я превращающим от кило до каменных фунтов, я хочу, чтобы поместить камни в один EditText и фунты в EditText, ниже мой методAndroid: Установить EditText с arraylistvalue

public ArrayList<HashMap<String, Integer>> kiloTostomepound(int s) { 

     int stone = (int) (s * 2.2); 
     int stonevalue = stone/14; 
     int spound = (stone % 14); 
     arrayList = new ArrayList<HashMap<String,Integer>>(); 
     HashMap<String, Integer> h1 = new HashMap<String, Integer>(); 
     h1.put(STONE,stonevalue); 
     h1.put(STONEPOUND, spound); 
     arrayList.add(h1); 
     return arrayList; 

     } 

я хочу, чтобы получить значение от арриалиста и установить его на edittext.

Выполнение ниже, но givinf NullPointerException

edt2.setText(String.valueOf(kiloTostomepound(arrayList.get(0).get(STONE)))); 
           edt3.setText(String.valueOf(kiloTostomepound(arrayList.get(1).get(STONEPOUND)))); 
+0

У вас есть несколько edittext или single? –

+0

@RemeesMSyde У меня есть несколько edittexts – teekib

ответ

0

Ниже код проходит через список и печатает ключ и значение.

for (int a =0; a<myList.size();a++) 
    { 
     HashMap<String, Integer> tmpData = (HashMap<String, Integer>) myList.get(a); 
     Set<String> key = tmpData.keySet(); 
     Iterator it = key.iterator(); 
     while (it.hasNext()) { 
      String hmKey = (String)it.next(); 
      Integer hmData = (Integer) tmpData.get(hmKey); 

      System.out.println("Key: "+hmKey +" & Data: "+hmData); 
      it.remove(); // avoids a ConcurrentModificationException 
     } 

    } 

Так что если вам нужно первое значение, попробуйте следующее.

HashMap<String, Integer> tmpData = (HashMap<String, Integer>) myList.get(0); 
    Set<String> key = tmpData.keySet(); 
    Iterator it = key.iterator(); 

    // Get the first element 

    String hmKey = (String)it.next(); 
    Integer hmData = (Integer) tmpData.get(hmKey); 

    // Set the key and value to Edit text 

    edt2.setText(hmKey+" "+hmData); 
0

Кажется, что вы присваиваете значение переменной arrayList внутри метода. Следовательно,

kiloTostomepound(arrayList.get(0).get(STONE)) 

Выброс нулевого указателя для arrayList.

Если я правильно понимаю ваш код, приведенный ниже код должен сделать трюк. Но я не знаю ввода для метода kiloTostomepound.

edt2.setText(String.valueOf(kiloTostomepound("INPUT TO METHOD").get(0).get(STONE))); 
edt3.setText(String.valueOf(kiloTostomepound("INPUT TO METHOD").get(1).get(STONEPOUND))); 

Это потому, что ваш метод возвращает массивList с хэшмапами внутри.

Смежные вопросы