public class ViewTypeDetector
extends com.android.tools.lint.detector.api.ResourceXmlDetector
implements com.android.tools.lint.detector.api.SourceCodeScanner
TODO: Check findFragmentById
((ItemListFragment) getSupportFragmentManager() .findFragmentById(R.id.item_list)) .setActivateOnItemClick(true);Here we should check the
<fragment> tag pointed to by the id, and
check its name or class attributes to make sure the cast is compatible with
the named fragment class!com.android.tools.lint.detector.api.Detector.BinaryResourceScanner, com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.GradleScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.ResourceFolderScanner, com.android.tools.lint.detector.api.Detector.UastScanner, com.android.tools.lint.detector.api.Detector.XmlScanner| Modifier and Type | Field and Description |
|---|---|
static com.android.tools.lint.detector.api.Issue |
ADD_CAST
Mismatched view types
|
static java.lang.String |
FIND_VIEW_BY_ID |
static com.android.tools.lint.detector.api.Issue |
WRONG_VIEW_CAST
Mismatched view types
|
| Constructor and Description |
|---|
ViewTypeDetector() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
appliesTo(com.android.resources.ResourceFolderType folderType) |
java.util.Collection<java.lang.String> |
getApplicableAttributes() |
java.util.List<java.lang.String> |
getApplicableMethodNames() |
protected java.util.Collection<java.lang.String> |
getViewTags(com.android.tools.lint.detector.api.Context context,
com.android.ide.common.res2.ResourceItem item) |
void |
visitAttribute(com.android.tools.lint.detector.api.XmlContext context,
org.w3c.dom.Attr attribute) |
void |
visitMethod(com.android.tools.lint.detector.api.JavaContext context,
org.jetbrains.uast.UCallExpression call,
com.intellij.psi.PsiMethod method) |
afterCheckFile, afterCheckLibraryProject, afterCheckProject, analyzeCallGraph, applicableAnnotations, applicableSuperClasses, appliesTo, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkClass, checkFolder, checkInstruction, createPsiVisitor, createUastHandler, fix, getApplicableAsmNodeTypes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableElements, getApplicableFiles, getApplicablePsiTypes, getApplicableReferenceNames, getApplicableUastTypes, getSpeed, isApplicableAnnotationUsage, isCallGraphRequired, visitAnnotationUsage, visitBuildScript, visitClass, visitClass, visitConstructor, visitConstructor, visitDocument, visitElement, visitElementAfter, visitMethod, visitReference, visitReference, visitResourceReference, visitResourceReferenceclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitanalyzeCallGraph, applicableAnnotations, applicableSuperClasses, appliesToResourceRefs, createUastHandler, getApplicableConstructorTypes, getApplicableReferenceNames, getApplicableUastTypes, isApplicableAnnotationUsage, isCallGraphRequired, visitAnnotationUsage, visitClass, visitClass, visitConstructor, visitReference, visitResourceReferencepublic static final com.android.tools.lint.detector.api.Issue WRONG_VIEW_CAST
public static final com.android.tools.lint.detector.api.Issue ADD_CAST
public static final java.lang.String FIND_VIEW_BY_ID
public boolean appliesTo(@NonNull
com.android.resources.ResourceFolderType folderType)
appliesTo in interface com.android.tools.lint.detector.api.XmlScannerappliesTo in class com.android.tools.lint.detector.api.ResourceXmlDetectorpublic java.util.Collection<java.lang.String> getApplicableAttributes()
getApplicableAttributes in interface com.android.tools.lint.detector.api.XmlScannergetApplicableAttributes in class com.android.tools.lint.detector.api.Detectorpublic void visitAttribute(@NonNull
com.android.tools.lint.detector.api.XmlContext context,
@NonNull
org.w3c.dom.Attr attribute)
visitAttribute in interface com.android.tools.lint.detector.api.XmlScannervisitAttribute in class com.android.tools.lint.detector.api.Detectorpublic java.util.List<java.lang.String> getApplicableMethodNames()
getApplicableMethodNames in interface com.android.tools.lint.detector.api.SourceCodeScannergetApplicableMethodNames in class com.android.tools.lint.detector.api.Detectorpublic void visitMethod(@NonNull
com.android.tools.lint.detector.api.JavaContext context,
@NonNull
org.jetbrains.uast.UCallExpression call,
@NonNull
com.intellij.psi.PsiMethod method)
visitMethod in interface com.android.tools.lint.detector.api.SourceCodeScannervisitMethod in class com.android.tools.lint.detector.api.Detector@Nullable
protected java.util.Collection<java.lang.String> getViewTags(@NonNull
com.android.tools.lint.detector.api.Context context,
@NonNull
com.android.ide.common.res2.ResourceItem item)