String[] rowname=new String[] {"Id","LockType","HotelId","RoomId","UserId","CheckInTime","CheckOutTime"};
int[] rid=new int[rowname.length];
for(int i=0;i<rowname.length;i++)
{
rid[i]=R.id.rowname[i];
//一般 R.id.username 这样固定获取是没问题的,但是怎么动态获取。。
}
------解决方案--------------------
可以利用反射,根据提供的name取得id值
// 依据name取得Field对象
Field f = R.drawable.class.getField(name);
// 取得int值
int resId = f.getInt(R.drawable.class) ;
http://blog.csdn.net/tibib/article/details/7323022
------解决方案--------------------
5楼说的对,要利用反射。参考代码:
private static Class<?> mId = null;
public static int id(Context c, String name) {
if (mId == null) {
try {
mId = Class.forName(c.getPackageName() + ".R$id");
}catch (ClassNotFoundException localClassNotFoundException) {
localClassNotFoundException.printStackTrace();
return -1;
}
}
try {
Field localField = mId.getField(name);
int i = localField.getInt(name);
return i;
} catch (Exception localException) {
localException.printStackTrace();
}
return -1;
}