我对android很新 . 我正在编写一个程序来更改按钮单击时的图像 . 没有图像,我的应用程序完美 . 但是对于图像,应用程序崩溃了 .
尺寸为img - 4kb,尺寸为80 X 80 .
我的代码 -
protected void clickMe(View view){
EditText phone = (EditText) findViewById(R.id.phone);
EditText name = (EditText) findViewById(R.id.name);
ImageView img = (ImageView) findViewById(R.id.img1);
img.setImageResource(R.drawable.x);
Toast.makeText(getApplicationContext(), "yo dudE "+name.getText().toString(), Toast.LENGTH_LONG).show();
Log.i("Phone : ", phone.getText().toString());
}
堆栈跟踪 :
07-04 11:06:04.964 10037-10037 / com.satyakisanyal.myfirstandroidproject E / AndroidRuntime:FATAL EXCEPTION:main进程:com.satyakisanyal.myfirstandroidproject,PID:10037 java.lang.IllegalStateException:无法执行android的方法: onClick在Android.view.View $ PerformClick.run上的android.sview.View.performClick(View.java:5198)上的android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) . java:21147)在android.os.Handler.handleCallback(Handler.java:739)的android.os.Handler.dispatchMessage(Handler.java:95)在android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)由android.supp的java.lang.reflect.Method.invoke(Native Method)引起的:java.lang.reflect.InvocationTargetException ort.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)在android.view.View.performClick(View.java:5198)android.view.View $ PerformClick.run(View.java:21147)在android.os.Handler.handleCallback(Handler.java:739)的android.app.Handler.dispatchMessage(Handler.java:95)在android.app的android.os.Looper.loop(Looper.java:148) . ActivityThread.main(ActivityThread.java:5417)位于com.android的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)的java.lang.reflect.Method.invoke(Native Method)中 . internal.os.ZygoteInit.main(ZygoteInit.java:616)引起:java.lang.ClassCastException:android.widget.RelativeLayout无法在com.satyakisanyal.myfirstandroidproject.MainActivity.clickMe(MainActivity . )中强制转换为android.widget.ImageView . java:22)在android.view.View.perf上的android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)的java.lang.reflect.Method.invoke(Native Method) ormClick(View.java:5198)at android.view.View $ PerformClick.run(View.java:21147)at android.os.Handler.handleCallback(Handler.java:739)android.os.Handler.dispatchMessage(Handler) .java:95)在android.app.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
3 回答
似乎id
img1
是RelativeLayout
,而不是ImageView
我希望你在android中投射
RelativeLayout
到ImageView
. 检查xml文件中的R.id.img1
是什么?检查logcat,它显示此错误 .
java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.ImageView
在使用之前检查ImageView的ID .