我的XML中有以下元素
<EditText
android:id="@+id/kernelb11"
android:layout_width="@dimen/matrixBoxWidthHeight"
android:layout_height="@dimen/matrixBoxWidthHeight"
android:layout_below="@+id/textViewb"
android:layout_margin="@dimen/marginOne"
android:background="@color/white1"
android:gravity="center"
android:inputType="numberSigned"
android:maxLength="2"
android:text="5" >
<requestFocus />
</EditText>
我试图在代码中检索它的价值,如:
String name = "kernelb11";
int a = this.getResources().getIdentifier(name, null, null); //
String as = (String) this.getResources().getText(a);
但在getIdentifier
回复我只是'0'有人可以告诉我为什么吗?
答案 0 :(得分:1)
请改为尝试:
int a = this.getResources().getIdentifier(name, "id", getPackageName());
正如其他人所指出的那样,这不是最好的方法(虽然,应该有效)
通常,您应该使用findViewById
代替。
答案 1 :(得分:1)
如果您在null
参数中指定了最后两个参数,则只能name
,例如:
String name = "my.package.name:id/kernelb11";
如果您只想使用该名称,则需要这样做:
getIdentifier(name, "id", "my.package.name")
然而,这可能不会做你想要的。要从EditText获取字符串,通常应该执行以下操作:
EditText et = (EditText)findViewById(R.id.kernellb11);
String as = et.getText().toString();