-1
我在模型包类EditTextMonitor,例如:ClassCastException异常:android.widget.EditText不能转换到Models.EditTextMonitor
public class EditTextMonitor extends EditText{
private final Context mcontext; // Just the constructors to create a new EditText...
public EditTextMonitor(Context context) {
super(context);
this.mcontext = context;
}
public EditTextMonitor(Context context, AttributeSet attrs) {
super(context, attrs);
this.mcontext = context;
}
public EditTextMonitor(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.mcontext = context;
}
@Override
public boolean onTextContextMenuItem(int id) {
// Do your thing:
boolean consumed = super.onTextContextMenuItem(id);
// React:
switch (id){
case android.R.id.copy:
onTextCopy();
case android.R.id.paste:
onTextCopy();
}
return consumed;
}
public void onTextCopy(){
((TextEditorActivity)mcontext).startAmode();
}
}
以我java类:EditTextMonitor编辑=(EditTextMonitor)findViewById(R.id 。文本编辑器);
在XML视图文件中定义它单曲:
<Models.EditTextMonitor
android:id="@+id/texteditor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_margin="5dp"
android:background="@color/white"
android:ems="10"
android:gravity="top"
android:inputType="textMultiLine"
android:padding="5dp"
android:textAllCaps="false" />
但我有错误:
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.atompark.atompark_sms/com.atompark.atompark_sms.TextEditorActivity}: java.lang.ClassCastException: android.widget.EditText cannot be cast to Models.EditTextMonitor
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5603)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassCastException: android.widget.EditText cannot be cast to Models.EditTextMonitor
at com.atompark.atompark_sms.TextEditorActivity.prepereInterface(TextEditorActivity.java:194)
at com.atompark.atompark_sms.TextEditorActivity.onCreate(TextEditorActivity.java:97)
...
我只在平板电脑上有这样的错误。
,那么你可能没有改变所有的布局来使用这个类。确保您没有在其他资源集(例如'layout/sw600dp /')中具有“EditText”的布局。 – CommonsWare 2014-10-17 11:41:03
在我所有的布局xml文件中,使用Models.EditTextMonitor – 2014-10-17 11:57:33
可能需要使用完整的包名称而不是像Models.EditTextMonitor一样的yourpackagename.Models.EditTextMonitor。 – 2014-10-17 12:45:59