android lint - Android Studioの「予想されるタイプのリソース」のチェック




2 Answers

(ヘッドアップのために@ CommonSWareに感謝します)。

これらのチェックを独自のコードでサポートするためのJava注釈があります。 それらはすべてandroid.support.annotationsパッケージにあります:

  • IdRes
  • DrawableRes
  • LayoutRes
  • StringRes
  • &c

この場合、たとえば、次のように使用できます。

private void mySetContentView(@LayoutRes int resourceId) {
    setContentView(resourceId);
}

Android Studioは、提供されたリソースIDが実際にレイアウト用であることを確認します。

さらに、これらのアノテーションはエクスポートされるので、ライブラリを設計するときに特に便利です。

ソース:

path preferences

Android Studio Beta(0.8)は、いくつかのintパラメータが任意の整数ではなく、いくつかのプロパティを持っているかどうかをチェックする素晴らしい新機能を備えています。

たとえば、次のようなものを呼び出します。

setContentView(R.id.textView1);

R.id.textView1がレイアウトIDではないことを正しく報告します(メッセージは「レイアウトの予想されるリソース」です)。 これには他の場合があります。

理解しやすいように、この保護は、自分のメソッドをミックスに追加するとすぐに失われます。

private void mySetContentView(int resourceId) {
    setContentView(resourceId);
}

私は任意の整数でmySetContentView()を呼び出すことができ、それは不平を言うことはありません。

だから私は2つの(関連する)質問があります:

  1. これはどのようにして達成されましたか?特別な小切手はリントに「焼かれましたか」?
  2. mySetContentView()メソッドに注釈を付けて、無効な値で呼び出しているときにリソースタイプのエラーも報告する方法はありますか?



この答えを試してください:その作業...あなたのbuild.gradleにこのコードを入れて

android {
 lintOptions {
    disable "ResourceType"
  }
}



Related

android android-studio lint typechecking