2015-01-06 80 views
-1

你好我是從千到石磅,我想放在一個EditText上的石頭和英鎊在一個EditText上轉換,下面是我的方法安卓:設置的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; 

     } 

我想要得到的值從arryalist並將其設置爲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或單個嗎? –

+0

@RemeesMSyde我有多個edittexts – teekib

回答

0

下面的代碼通過遍歷該列表並打印鍵和值。

​​

所以,如果你需要第一個值試下面。

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

這是因爲你的方法返回arrayList與hashmaps裏面。