2016-04-30 5 views
1

私のレイアウトには、android:text="button_name"属性を除いて、すべての属性が絶対的に同じ多くのボタンが含まれています。styles.xmlファイルのすべてのボタンに共通のonClick属性を宣言する

これらのボタンのテーマは、次のように私が達成したい何

<style name="Core.ButtonStyleSmall"> 
    <item name="android:layout_width">16sp</item> 
    <item name="android:layout_height">16sp</item> 
    <item name="android:layout_marginLeft">8sp</item> 
    <item name="android:layout_marginBottom">6sp</item> 
    <item name="android:textSize">10sp</item> 
    <item name="android:onClick">takeToApplication</item> 
</style> 

のstyles.xmlに定義すると、これらのボタンのすべてのための共通のonClick声明ですので、私はここにこれを追加しましたが、それ動作していないようです。

私のJavaファイルでは、それでもMethod'takeToApplication(android.view.View)' is never usedという警告が表示されます。

これを行う正しい方法は何ですか?これに関して私を助けてください。誰も明確な答えを持っていたので

+0

とにかく表示される場合があります。 JavaはレイアウトXMLについて何も知らないので、あなたのメソッドがリフレクションを介して呼び出されることはわかりません。それは単なる警告です。より大きな問題は、ユーザーがボタンをクリックしたときにメソッドが呼び出されるかどうかです。 'onClick'はスタイルリソースに入れる珍しい属性です。問題がある場合は、それがうまくいくはずですが、私はショックを受けません。 – CommonsWare

+0

layout.xmlファイルに 'onClick'を宣言すると、警告が消えてしまいます。そのため、動作しないと想定しました。それにもかかわらず、私はそれを実行しようとします。 –

+0

Lintは、レイアウトXMLファイルの 'onClick'属性をチェックし、警告を自動的に抑制することを知っているかもしれません。しかし、他のケースがあるかもしれません(たとえば、文字列リソース内にメソッド名があるなど)。 – CommonsWare

答えて

2

、私は自分自身を先に行くと、それにお答えします:

任意のXML属性はすべての共通の属性を共有する必要があるすべてのビューのためのstyles.xmlファイルに宣言することができます。したがって、onClickはそこで宣言されたときにうまく動作します。

これは、事前にMethod 'name_of_method' is never usedと言っている警告を表示しますが、それはリソースファイルへの呼び出しが実行時に行われるためです。警告は無視しても問題ありません。

関連する問題