Estoy tratando de inflar una vista de clase interna y obtener el problema de "clase de inflado de error". Me he referido al this post que fue útil, pero todavía estoy perdido sobre por qué no puedo hacer que esto funcione.Error al inflar la vista de clase interna
Aquí hay un fragmento de código, mi XML y logcat.
Editar: También he notado que los estados LogCat un "no como excepción método" para "CupcakeMessageView (Contexto, AttributeSet) cuando claramente tienen que
Gracias a todos
public class CupcakeMessage extends Activity {
class CupcakeMessageView extends View {
private static final int TEXT_SIZE = 12;
private static final int X_OFFSET = 15;
private Paint mPaint;
public CupcakeMessageView(Context context) {
super(context);
}
public CupcakeMessageView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
...
}
more class stuff...
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cupcake_message);
...
}
}
Aquí es el.! XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<view class="com.cmllc.zcc.CupcakeMessage$CupcakeMessageView"
android:id="@+id/cupcake_message_view"
android:screenOrientation="portrait"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
more views...
Logcat:
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): FATAL EXCEPTION: main
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cmllc.zcc/com.cmllc.zcc.CupcakeMessage}: android.view.InflateException: Binary XML file line #7: Error inflating class com.cmllc.zcc.CupcakeMessage$CupcakeMessageView
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.os.Handler.dispatchMessage(Handler.java:99)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.os.Looper.loop(Looper.java:123)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at java.lang.reflect.Method.invokeNative(Native Method)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at java.lang.reflect.Method.invoke(Method.java:521)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at dalvik.system.NativeStart.main(Native Method)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.cmllc.zcc.CupcakeMessage$CupcakeMessageView
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.createView(LayoutInflater.java:503)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.Activity.setContentView(Activity.java:1647)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at com.cmllc.zcc.CupcakeMessage.onCreate(CupcakeMessage.java:119)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): ... 11 more
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): Caused by: java.lang.NoSuchMethodException: CupcakeMessageView(Context,AttributeSet)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at java.lang.Class.getMatchingConstructor(Class.java:660)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at java.lang.Class.getConstructor(Class.java:477)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): at android.view.LayoutInflater.createView(LayoutInflater.java:475)
12-19 09:31:24.249: ERROR/AndroidRuntime(5435): ... 21 more
Intente hacer que su clase interna 'public static' – Macarse
+1. Eso funciono. Cuidado para explicar por qué? – user432209
Déjame colocar una respuesta. – Macarse