访问视图的属性值

时间:2015-10-22 05:46:26

标签: android view textview

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

       android:text="@string/example" 

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

我需要查找此文本视图正在使用的资源..所以,如果我可以访问textview对象的此文本视图属性值,那将会很有帮助

3 个答案:

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