問題タブ [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.

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

android - 複数の使用ButterKnife を使用したレイアウトのタグ

同じサブレイアウトを複数回含めたレイアウトがあり、それぞれに異なる役割があります。

この方法でビューを見つければうまくいきます:

私は現在、自分のプロジェクトにバターナイフを導入しています。各ビューに簡単に注釈を付けて (以下は明らかに機能しません。その理由はわかります)、含まれている各レイアウト ルートを使用して後でそれらを挿入できることを願っています。

ただし、この方法で行うと、2 回目の注入で次のエラーが発生します。

エラー:(81, 13) エラー: 'mEcoSeekArc' で既に挿入された ID 2131493185 に対して @InjectView を使用しようとしています。

私の質問は: このシナリオでバターナイフを使用する方法はありますか?

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

android - バターナイフで動作しないリスナーにビューを注入する

Android イベント リスナーの場合の「内部クラス地獄」を回避するために、リスナーを別のクラスに移動しました。TextView以下は、日付文字列を保持する のリスナーの 1 つです。それに触れると、 を開きDatePickerDialog、選択した日付の値を に戻しますTextView

このリスナーをさらに拡張して、Butterknife を次のように使用できるようにしました。

ActivityUtil.getParentActivity(view)上記のコードで使用され、ビューのコンテキスト階層をスキャンして、その親アクティビティを見つけます。以下はそのコードです。

このコードを実行すると、dateView残りnullNPE. ただし、このコードは、バターナイフを使用しない場合に機能します (DateViewClickListenerその場合、クラスは次のようになります)。

私の理解はどこが間違っていますか?

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

android - Android - カスタム ビューは、ID を指定しないことで独自のリスナーにバインドできます - 動作しません

彼らが言ったように、私はバターナイフの指示に従います:「カスタムビューは、IDを指定しないことで独自のリスナーにバインドできます。」

学年

BaseButton を作成します。

activity_main

そしてMainActivity

buttonPressed メソッドのコメントを外すと、「buttonPressed」が表示されます。コメントしても何も起こりません。私が期待しているのは、最初に「hello」が表示され、次に「buttonPressed」が表示されることです。

あなたはなにか考えはありますか?ありがとうございました。

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

android - Butterknife @Bind がリリース ビルドで失敗するのはなぜですか (proguard の後)

Butterknife を使用して Android アプリを作成しており、最近 7.0.1 にアップグレードしました。@InjectViewすべてのButterKnife.inject使用法を新しい機能に置き換えました@Bind。デバッグ ビルドでは問題はありませんが、リリース ビルドの起動時にアプリがクラッシュします。

minifyEnabledbuild.gradle で' ' を false に切り替えると、動作するリリース ビルドを生成できます。

Butterknife サイトに記載されているプロガード構成を使用していますが、うまく機能していないようです。私のビルドでは、Dagger、Picasso、Flurry も使用しています。

私のproguard-rules.proコンテンツ:

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

java - バターナイフで文字列の配列をバインドする

を使用して文字列の配列をバインドしようとしていbutterknifeます。しかし、方法がないようです(ただし、プロセッサには配列をバインドする方法があります)。

これが私のコードです:

文字列.xml

主な活動

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

android - ビューを持たないクラスのButterKnife 7.0 BindString

ビューを持たないヘルパー クラスで、ButterKnife 7.0 の @BindString を使用しています。

バター ナイフのバインド メソッドは次のとおりです。

ご覧のとおり、View オブジェクトなしでバインドできるメソッドはありません。

任意のアクティビティを取得し、それをクラスに渡してバインドを作成できますが、これはハックであり、不要な依存関係がクラスに追加されます。

ビューなしでバター ナイフ バインディングを作成する方法はありますか?