0

カスタム ビュー クラスの xml レイアウト ファイルから属性を取得しようとしていますが、これを行うには 2 つの方法があるようです....

この最初のものは、型付き配列を使用してすべての属性にアクセスしています

    public VisualNode(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub

    //getting all the attributes that might be set in an xml file
    TypedArray a = context.getTheme().obtainStyledAttributes(attrs,
                           R.styleable.VisualNode, 0, 0);       

    String text = a.getString(R.styleable.VisualNode_device_name);
    deviceName = new TextView(context);
    deviceName.setText(text);

これとは対照的に、リソースに直接アクセスする

    deviceName = new TextView(context);
    deviceName.setText(R.styleable.VisualNode_device_name);
4

1 に答える 1

1

属性に直接アクセスするといくつかの欠点があるため、TypedArray を使用することをお勧めします。

Android ドキュメントで見つけた 2 つの欠点は次のとおりです。

  • 属性値内のリソース参照は解決されません
  • スタイルは適用されません

ドキュメントからこのリンクを見てください。

http://developer.android.com/training/custom-views/create-view.html#applyattr

幸運を!

于 2013-08-02T20:23:38.067 に答える