問題タブ [declare-styleable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
7209 参照

android - 宣言スタイル可能で整数の配列を定義する方法は?

<declare-styleable>カスタム ビュー用に独自のものを実装しています (こちらの手順に従ってください)。可能な XML 属性の 1 つとして整数の配列を指定できるようにしたいと考えています。方法:

  1. attrs.xml?に XML 属性として整数配列を指定します。
  2. カスタム ビューを呼び出した後、 TypedArrayから取得しますか?obtainStyledAttributes()
0 投票する
0 に答える
1621 参照

java - コードから XML 列挙値にアクセスする

次のように、列挙値を使用してスタイル可能な属性を宣言しました。

switchここで、コード内、できればステートメント内でそれらを参照したいと思います。

列挙型にある値をコードにハードコーディングする以外に、これを行う方法を見つけることができません(そもそも列挙型の目的の半分を無効にします)。

誰もこれを行う方法を知っていますか?

編集

@CommonsWareの答えに従って、これを試しました:

リソース.xml:

attrs.xml:

これによりtop、 の値が受け入れられなくなりましたrotation

0 投票する
1 に答える
683 参照

android - 宣言可能な名前は、その属性を使用するビューにどのようにリンクされていますか?

通常、カスタム属性の例は次の形式です。

とその使用法:

したがって、カスタム ビューには、スタイル可能な属性と同じ名前が付けられます。

しかし、この例 (クリックすると完全なコードが表示されます) では、次のようになります。

によって使われた:

ColorOptionsViewname で定義された属性にどのようにリンクされているのOptionsか疑問に思いました。

0 投票する
0 に答える
195 参照

android - XML からカスタム ビューに静的フィールドを設定する

これはカスタム ビューです

この XML は MyView を数回インスタンス化します

colorXML から静的を初期化する適切な方法を知りたいです。
私はすでに1つの解決策を知っています(しかし、別の推奨される方法があるのだろうか):

  • カスタム属性を定義する
  • いずれかのインスタンス化でカスタム属性を使用しますMyView
  • MyView コンストラクター中に静的フィールドを設定する

TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyView, defStyle, 0);
int c = a.getInteger(R.styleable.MyView_color, -1);
if( c != -1 ) 色 = c;

このソリューションについて私が気に入らない唯一のことは、MyViewインスタンス化に依存していることです。通常、コードでは、静的フィールドとメソッドに個別にアクセスできます。 static フィールドも、MyView実際のインスタンス化とは無関係です。

0 投票する
2 に答える
4229 参照

android - スタイル可能を解決できません

私が使用しているコードは次のとおりです。

attrs.xml ファイルは次のとおりです (values フォルダーに追加されます)。

これらの質問の回答では、問題を解決できませんでした。私の質問を重複と見なさないでください。


更新: 間違った R クラスをインポートしていたようです。アプリケーションのRクラスではありませんandroid.R

0 投票する
4 に答える
10324 参照

java - 異なるタグに対して同じ名前のいくつかのスタイル可能な属性を宣言する方法は?

ViewA と ViewB の両方に「タイトル」タグを付けたい。しかし、これを入れることはできませんattrs.xml:

エラーのためAttribute "title" has already been defined . 別の質問は、この解決策を示しています。

ただし、その場合、R.styleable.ViewA_titleandR.styleable.ViewB_titleは生成されません。次のコードを使用して AttributeSet から属性を読み取るために必要です。

どうすればこれを解決できますか?

0 投票する
1 に答える
1251 参照

java - TypedArray#getTextArray() 中にスローされる例外

カスタム ビューを作成するのはこれが初めてで、Spinner と同様の方法で、XML 経由でエントリを入力しようとしています。ここでは明らかに何か間違ったことをしていますが、Spinner の後にアプローチをスタイルしているので、何が間違っているのかわかりません。

このコードの意図を説明するために、カスタム設定リストを作成しています。MultiChooserOption は、ユーザーがオプションのリストから複数のものを選択できるようにするアイテムです。TextOption は、リストに表示されるビューを定義するだけです。つまり、キャプションとその他の要素があり、TextOption のサブクラスの場合、その他の要素はウィジェット (チェックボックスなど) ではなくテキストになります。

以下は、これを構築した方法と logcat 出力に影響を与えるすべてのソースです。

attrs.xml

MultiChooserOption.java

TextOption.java

options_fragment.xml

配列.xml

文字列.xml

OptionsFragment.java

logcat出力

CharSequence[] optionsArray = attributesArray.getTextArray( R.styleable.MultiChooserOption_options );そのため、MultiChooserOptionの行が実行されると、例外がスローされ、シバン全体が崩壊します。私が知る限り、私は重要な限り Spinner をフォローしています。

ここで私が間違ったことを学ぶのを手伝ってください。

0 投票する
0 に答える
165 参照

android - Android 4.4 のカスタム スタイル設定は利用できません

だから私はAndroid 4.4でカスタムスタイル可能に問題があります。

Android 4.4 で何が問題なのか、何が余分なのかを誰かが知っていれば、カスタム スタイル可能オブジェクトが起動しません。助けてください。

これが私が使用するコードで、Android 2.2から4.3までで完全に動作します(電話とシミュレーターでテスト済み)。

レイアウト :

クラス:

0 投票する
2 に答える
1233 参照

java - 値からスタイル可能な列挙名を取得する

これは、列挙型について何百万回も尋ねられる質問ではありません。

列挙型をスタイル可能な属性の一部として定義します (カスタム ウィジェットの場合)

次に、次のように使用します。

設定コンストラクターで「RGB」という名前を取得したいと思います。

しかし、これは機能せず、「RGB」の値をa.getString(...)返し、スローされた例外が割り当てられます。"1" mColorModenull

それ以外の

: ColorMode は問題の原因ではないことを強調したいと思いenumます。名前を取得する必要がある列挙型は、XML で宣言された質問の上部にある列挙型です。はい、名前は同じですが、数値が同じであるとは言えません。