是否有任何可能的方法通过对象访问视图的属性值..
android:text="@string/example"
我需要从对象访问此值。我尝试了很多选项,但没有一个选择返回'@ string / example'这个值。
我需要查找此文本视图正在使用的资源..所以,如果我可以访问textview对象的此文本视图属性值,那将会很有帮助
答案 0 :(得分:0)
TextView myTextView = (TextView) findViewById(R.id.textViewId);
String s = myTextView.getText();
if(s.equals(getResources().getString(R.string.yourString){
}
else if() ...
这应该有效。如果您有很多文本可供选择,您也可以尝试使用switch语句。
答案 1 :(得分:0)
U无法从文本内容中获取资源ID ....这就像使用字节流查找名称一样。 我按照佩德罗的建议进行了某种修复.....->
TextView vt=(TextView)findViewById(R.id.andry_tv);
vt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try{
v.setTag(R.string.app_name+"");
Toast.makeText(getApplicationContext(),getResources().getResourceName(Integer.parseInt(v.getTag().toString())), Toast.LENGTH_SHORT).show();
}
catch(Exception e){
Log.e("oye", e.toString());
}
}
});
Explanation-> 你可以设置那个id(你用来在textview中设置文本)来设置为标签。 然后使用getResources()。getResouceName函数从该标记中获取资源名称。
答案 2 :(得分:0)
尝试使用Resources.getXml(int)
,然后将资源解析为xml。以下是SAX解析器的常见示例,适用于您的情况:
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = context.getResources().getXml(R.xml.example);
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if (eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag " + xpp.getName());
} else if (eventType == XmlPullParser.END_TAG) {
System.out.println("End tag " + xpp.getName());
} else if (eventType == XmlPullParser.TEXT) {
System.out.println("Text " + xpp.getText());
}
eventType = xpp.next();
}
System.out.println("End document");
}