問題タブ [butterknife]
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.
android - 複数の使用ButterKnife を使用したレイアウトのタグ
同じサブレイアウトを複数回含めたレイアウトがあり、それぞれに異なる役割があります。
この方法でビューを見つければうまくいきます:
私は現在、自分のプロジェクトにバターナイフを導入しています。各ビューに簡単に注釈を付けて (以下は明らかに機能しません。その理由はわかります)、含まれている各レイアウト ルートを使用して後でそれらを挿入できることを願っています。
ただし、この方法で行うと、2 回目の注入で次のエラーが発生します。
エラー:(81, 13) エラー: 'mEcoSeekArc' で既に挿入された ID 2131493185 に対して @InjectView を使用しようとしています。
私の質問は: このシナリオでバターナイフを使用する方法はありますか?
android - バターナイフで動作しないリスナーにビューを注入する
Android イベント リスナーの場合の「内部クラス地獄」を回避するために、リスナーを別のクラスに移動しました。TextView
以下は、日付文字列を保持する のリスナーの 1 つです。それに触れると、 を開きDatePickerDialog
、選択した日付の値を に戻しますTextView
。
このリスナーをさらに拡張して、Butterknife を次のように使用できるようにしました。
ActivityUtil.getParentActivity(view)
上記のコードで使用され、ビューのコンテキスト階層をスキャンして、その親アクティビティを見つけます。以下はそのコードです。
このコードを実行すると、dateView
残りnull
はNPE
. ただし、このコードは、バターナイフを使用しない場合に機能します (DateViewClickListener
その場合、クラスは次のようになります)。
私の理解はどこが間違っていますか?
android - Android - カスタム ビューは、ID を指定しないことで独自のリスナーにバインドできます - 動作しません
彼らが言ったように、私はバターナイフの指示に従います:「カスタムビューは、IDを指定しないことで独自のリスナーにバインドできます。」
学年
BaseButton を作成します。
activity_main
そしてMainActivity
buttonPressed メソッドのコメントを外すと、「buttonPressed」が表示されます。コメントしても何も起こりません。私が期待しているのは、最初に「hello」が表示され、次に「buttonPressed」が表示されることです。
あなたはなにか考えはありますか?ありがとうございました。
android - Butterknife @Bind がリリース ビルドで失敗するのはなぜですか (proguard の後)
Butterknife を使用して Android アプリを作成しており、最近 7.0.1 にアップグレードしました。@InjectView
すべてのButterKnife.inject
使用法を新しい機能に置き換えました@Bind
。デバッグ ビルドでは問題はありませんが、リリース ビルドの起動時にアプリがクラッシュします。
minifyEnabled
build.gradle で' ' を false に切り替えると、動作するリリース ビルドを生成できます。
Butterknife サイトに記載されているプロガード構成を使用していますが、うまく機能していないようです。私のビルドでは、Dagger、Picasso、Flurry も使用しています。
私のproguard-rules.proコンテンツ:
java - バターナイフで文字列の配列をバインドする
を使用して文字列の配列をバインドしようとしていbutterknife
ます。しかし、方法がないようです(ただし、プロセッサには配列をバインドする方法があります)。
これが私のコードです:
文字列.xml
主な活動
android - ビューを持たないクラスのButterKnife 7.0 BindString
ビューを持たないヘルパー クラスで、ButterKnife 7.0 の @BindString を使用しています。
バター ナイフのバインド メソッドは次のとおりです。
ご覧のとおり、View オブジェクトなしでバインドできるメソッドはありません。
任意のアクティビティを取得し、それをクラスに渡してバインドを作成できますが、これはハックであり、不要な依存関係がクラスに追加されます。
ビューなしでバター ナイフ バインディングを作成する方法はありますか?