ho ricevuto il seguente avviso:Vista personalizzata manca costruttore utilizzato dagli strumenti per l'adattatore
Vista personalizzata com/es/view/adattatore/SomeAdapter manca costruttore usata da strumenti: (Context) o (Context , AttributeSet) o (Context, AttributeSet, int)
nella mia classe SomeAdapter che si estende un po 'BaseAdapter che si estende ArrayAdapter
public class SomeAdapter extends BaseAdapter{}
public abstract class BaseAdapter extends ArrayAdapter<SomeModel>{}
L'avviso esiste nell'adattatore concreto ma non nel BaseAdapter astratto. Qualcuno ha mai sentito parlare di questo avvertimento in quel contesto?
per quanto ne so Android controlla le classi perché stanno estendendo vista controllando il nome delle classi Super via ViewConstructorDetector:
private static boolean isViewClass(ClassContext context, ClassNode node) {
String superName = node.superName;
while (superName != null) {
if (superName.equals("android/view/View") //$NON-NLS-1$
|| superName.equals("android/view/ViewGroup") //$NON-NLS-1$
|| superName.startsWith("android/widget/") //$NON-NLS-1$
&& !((superName.endsWith("Adapter") //$NON-NLS-1$
|| superName.endsWith("Controller") //$NON-NLS-1$
|| superName.endsWith("Service") //$NON-NLS-1$
|| superName.endsWith("Provider") //$NON-NLS-1$
|| superName.endsWith("Filter")))) { //$NON-NLS-1$
return true;
}
superName = context.getDriver().getSuperClass(superName);
}
return false;
}
Per quanto posso vedere i miei nomi di classe non corrispondono al modello di cui sopra. Qualcuno ha qualche idea su come correggere o sopprimere questo avviso?
GetView() in BaseAdapter:
@Override
public final View getView(final int position, final View convertView, final ViewGroup parent) {
View view = convertView;
if (null == view) {
view = createNewView(parent, position);
} else {
reuseOldView(view, position);
}
return view;
}
Cosa implementa l'adattatore? Hai una visualizzazione personalizzata? – Neil
No, non implemento nulla. Basta estendere l'ArrayAdapter. – salcosand
per quale scopo? Un adattatore non può funzionare da solo. Per cosa lo vuoi usare? – Neil