2015-10-22 95 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"); 
}