2015-10-22 57 views
0

的属性值是否存在通过对象访问视图的属性值任何可能的方式..访问视图

 android:text="@string/example" 

我需要从一个对象来访问此值。我尝试了很多选项,但没有一个返回'@ string/example'这个值。

我需要找到正在使用的资源通过本文观点..所以,如果我可以访问一个TextView对象的这个文本视图属性值..这将是有益的

回答

0
TextView myTextView = (TextView) findViewById(R.id.textViewId); 
String s = myTextView.getText(); 

if(s.equals(getResources().getString(R.string.yourString){ 
} 
else if() ... 

这应该工作。如果你有很多文本可供选择,你也可以尝试switch语句。

+0

感谢you..but这并没有解决我的疑难问题需要动态地检查这股共同财产布局的每个TextView的。 。例如,如果字符串资源以命名约定'test _'...开头,例如,如果有两个文本视图分别使用'test_HAI','test_Hello'。我需要检查所有使用此约定的文本视图 – user332863

+0

您应该使用标记这样的公约领域 –

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(其中UR使用设​​置在TextView的文本)设置为标签。 然后使用getResources()。getResouceName函数从该标记获取资源名称。

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"); 
}