2015-10-22 3 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 это не решает мои problem.I нужно динамически проверять каждый TextView на макете, которая разделяет общую собственность. такие как строковые ресурсы, которые начинаются с соглашения об именовании «test _» ... например, если есть 2 текстовых просмотров, которые используют «test_HAI», «test_Hello» соответственно. Мне нужно проверить все текстовые просмотры, которые используют это соглашение – user332863

+0

, вы должны использовать тег поле для такой конвенции –

0

U не может получить идентификатор ресурса из текстового содержимого .... Это похоже на поиск имени с использованием потока байтов. Я последовал совету Педро и иметь какое-то исправить .....->

 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-> и можно установить, что идентификатор (который Уры используют, чтобы установить текст в 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"); 
} 
Смежные вопросы