如何传递字符串数组中的字符串资源引用android
我想传入字符串数组中的字符串资源值,但它没有在数组中取值。将采取空值如何传递字符串数组中的字符串资源引用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数组的第一个值,它取空值
取而代之的是,你可以在创建<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);
这或许有助于你的问题。
使用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)
简单地说。
现在,如果您添加了值,它将创建新的索引并将其添加到最后。 运气最好。
由于您试图将变量初始化为类变量,您将收到异常。我在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);
}
它不是没有工作 –
没有错误..它采取空 –
不,在string.xml中值不为空.. –
为什么你不想使用资源? –
你不能这个'homeList = {prepaid,dth}'你只能用Array.combine –
Thanx合并..如果可能请分享例子.. –