2016-07-15 85 views
0

我想傳入字符串數組中的字符串資源值,但它沒有在數組中取值。將採取空值如何傳遞字符串數組中的字符串資源引用android

下面是我的代碼:

prepaid = getResources().getString(R.string.lbl_prepaid); 
dth = getResources().getString(R.string.lbl_dth); 

public String[] addedRTHomeList(){ 
     String[] homeList = {prepaid,dth,"PostPaid","Utility Services","Complaint Entry","Complaint Status","Recharge Status",chat,"Topup Request","Redeem Discount","Private Bus Booking","ST Bus Booking","Hotel Booking","Flight Booking","Money Transfer","Settings","Reports","DTH Activation"}; 
     return homeList; 
    } 


for(int i = 0; i < ba.addedRTHomeList().length ; i++) 
     { 
      md = new MenuDetail(); 
      md.setMenuName(ba.addedRTHomeList()[i]); 
      md.setImageId(ba.RTDrwableListThemeRed()[i]); 

      RTmenuListRed.add(md); 

      RTMenuThemeRed.put(ba.RTMenuCode()[i],RTmenuListRed); 
     } 

在for循環,當我訪問addedRTHomeList數組的第一個值,它取空值

+0

爲什麼你不想使用<字符串數組>資源? –

+0

你不能這個'homeList = {prepaid,dth}'你只能用Array.combine –

+0

Thanx合併..如果可能請分享例子.. –

回答

0

取而代之的是,你可以在創建<string-array>你的string.xml。像,

<string-array name="your_array_name"> 
    <item>Element 1</item> 
    <item>Element 2</item> 
    <item>Element 3</item> 
    <item>Element 4</item> 
    . 
    . 
    . 

</string-array> 

在這之後,你可以在Java中獲得的,

String[] mTestArray = = getResources().getStringArray(R.array.your_array_name); 

這或許有助於你的問題。

0

使用AarryList而不是簡單的數組因爲arraylist具有簡單的動態實現。

當你創建數組時你已經告訴了它的長度。

public String[] addedRTHomeList(){ 
     String[] homeList = {prepaid,dth,"PostPaid","Utility Services","Complaint Entry","Complaint Status","Recharge Status",chat,"Topup Request","Redeem Discount","Private Bus Booking","ST Bus Booking","Hotel Booking","Flight Booking","Money Transfer","Settings","Reports","DTH Activation"}; 
     return homeList; 
    } 

像上面homeList是17大小,你不能在18指數增加值,因爲18是不存在的,之所以你收到此錯誤

解決方案:

使用字符串ArrayList的例子使用

ArrayList<String> homeList = new ArrayList<String>(); 

homeList.add("PostPaid"); 
homeList.add("Complaint Status"); 
homeList.add("Recharge Status"); 

. 
. 
} 

從ArrayList中獲取值homeList.get(index)簡單地說。

現在,如果您添加了值,它將創建新的索引並將其添加到最後。 運氣最好。

0

由於您試圖將變量初始化爲類變量,您將收到異常。我在addedRTHomeList()方法裏面移動了初始化,發現沒有問題。

試試這個代碼,

public String[] addedRTHomeList(){ 
    String prepaid = getResources().getString(R.string.lbl_prepaid); 
    String dth = getResources().getString(R.string.lbl_dth); 
    String chat = getResources().getString(R.string.lbl_chat); 

    return new String[]{prepaid,dth,"PostPaid","Utility Services","Complaint Entry","Complaint Status","Recharge Status",chat,"Topup Request","Redeem Discount","Private Bus Booking","ST Bus Booking","Hotel Booking","Flight Booking","Money Transfer","Settings","Reports","DTH Activation"}; 
} 

String[] items = ba.addedRTHomeList(); 
for(int i = 0; i < items.length ; i++){ 
    md = new MenuDetail(); 
    md.setMenuName(items[i]); 
    md.setImageId(ba.RTDrwableListThemeRed()[i]); 

    RTmenuListRed.add(md); 

    RTMenuThemeRed.put(ba.RTMenuCode()[i],RTmenuListRed); 
} 
+0

它不是沒有工作 –

+0

沒有錯誤..它採取空 –

+0

不,在string.xml中值不爲空.. –

相關問題