6

カスタムTextViewでは、属性の値を取得しようとしていtextます(たとえば)。

TypedArray values = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.TextView);
String text = values.getString(com.android.internal.R.styleable.TextView_text);

しかし、次のエラー メッセージが表示されます。

パッケージ com.android.internal.R が存在しません

では、TextView の「デフォルト」属性を取得する方法は?

4

4 に答える 4

7

これらの「アンドロイド」属性にアクセスしたい場合は、それらを「オーバーライド」できます。

<attr name="android:padding"/>

次に、次の方法で簡単に取得できます。

int padding = a.getInt(R.styleable.CustomView_android_padding, -1);

参考までに、Anwser はLucas Rocha によって実装された TwoWayView レイアウトのソース コードに触発されています。カスタムビューの実装方法を分析する良い例だと思います

于 2014-12-12T15:11:29.273 に答える
1

internal.R クラスは表示されないため、スーパー コンストラクターが呼び出された後にのみ、アクセサー メソッドを介してのみ読み取ることができます。

内部でどのように機能するかについては、TextView のソースを参照してください。

于 2014-10-21T14:10:44.523 に答える
-1

com.android.internal.Rのリソースにアクセスするには、次を使用できます

Resources.getSystem().getIdentifier(name, defType, defPackage)

リンクが役立つ場合があります。

于 2015-05-28T16:34:38.647 に答える