“如何修复此错误”;无法将java.lang.Integer强制转换为int";
我创建了两组图像视图,即视图组A(有26个)和B(有26个) & 还有26幅名为“a”、“b”的图像即图像a有一个图像 步骤1:我将26张图像随机加载到B组(26张图像视图) 在加载时,我在ImageView的标记(int值)中设置了图像的名称,即图像'a'的97 步骤2当用户按正确的顺序单击图像时。。。Z,然后图像将从B组移动到A组图像视图1、2。。。。26.. 下面的代码执行第二步2 注: currentText='a'“如何修复此错误”;无法将java.lang.Integer强制转换为int";,java,android,Java,Android,我创建了两组图像视图,即视图组A(有26个)和B(有26个) & 还有26幅名为“a”、“b”的图像即图像a有一个图像 步骤1:我将26张图像随机加载到B组(26张图像视图) 在加载时,我在ImageView的标记(int值)中设置了图像的名称,即图像'a'的97 步骤2当用户按正确的顺序单击图像时。。。Z,然后图像将从B组移动到A组图像视图1、2。。。。26.. 下面的代码执行第二步2 注: currentText='a' // this method called in
// this method called in image onclick
public void ImageClicked(View view) {
int nameFromImagetag;
char tag;
ImageView ClickedImage = (ImageView) view;
ImageView ImageViewInGroupA = new ImageView(MainActivity.this);
nameFromImagetag = (int) ClickedImage.getTag();
tag=(char) nameFromImagetag;
if (tag == currentText) {
ImageViewInGroupA = (ImageView) findViewById(ImageViewGroupAIdList[PointerToGroupA]);
//Next line pops up error "can not cast java.lang.Integer to int"
ImageViewInGroupA.setImageResource((int) ClickedImage.getTag());
ClickedImage.setImageBitmap(null);
ClickedImage.setTag(null);
ClickedImage.setClickable(false);
currentText = (char) ((int) currentText + 1);
PointerToGroupA = PointerToGroupA + 1;
}
}
04-05 09:55:22.674 5168-5168/com.example.android.myabc E/Trace:打开跟踪文件时出错:权限被拒绝(13)
04-05 09:55:28.074 5168-5168/com.example.android.myabc E/dalvikvm:未能找到从方法android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering引用的类“android.graphics.drawable.RippleDrawable”
04-05 09:56:36.444 5168-5168/com.example.android.myabc E/AndroidRuntime:FATAL EXCEPTION:main
java.lang.IllegalStateException:无法为android执行方法:onClick
在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
在android.view.view.performClick上(view.java:4084)
在android.view.view$PerformClick.run(view.java:16966)
位于android.os.Handler.handleCallback(Handler.java:615)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4745)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
在android.view.view.performClick上(view.java:4084)
在android.view.view$PerformClick.run(view.java:16966)
位于android.os.Handler.handleCallback(Handler.java:615)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4745)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
在dalvik.system.NativeStart.main(本机方法)
原因:android.content.res.Resources$NotFoundException:资源ID#0x61
位于android.content.res.Resources.getValue(Resources.java:1013)
位于android.support.v7.widget.ResourcesWrapper.getValue(ResourcesWrapper.java:204)
在android.support.v7.widget.AppCompatidDrawableManager.loadDrawableFromDelegates(AppCompatidDrawableManager.java:332)上
位于android.support.v7.widget.AppCompatidDrawableManager.getDrawable(AppCompatidDrawableManager.java:197)
位于android.support.v7.widget.AppCompatidDrawableManager.getDrawable(AppCompatidDrawableManager.java:190)
Object obj = ClickedImage.getTag();
nameFromImagetag = (obj instanceof Integer) ? ((Integer)obj).intValue() : 0;
Modified code below! ..........Hey Its working king ing ng.g..:)
public void ImageClicked(View view) {
int nameFromImagetag,id=-1;
Integer MyInt=null;
char tag;
Object MyObj=null; //changed
ImageView ClickedImage = (ImageView) view;
ImageView ImageViewInGroupA = new ImageView(MainActivity.this);
findViewById(ImageViewGroupBIdList[PointerToGroupA]);
nameFromImagetag = (int) ClickedImage.getTag();
tag=(char) nameFromImagetag;
if (tag == currentText) {
ImageViewInGroupA = (ImageView) findViewById(ImageViewGroupAIdList[PointerToGroupA]);
MyObj=ClickedImage.getTag(); //changed
id=((Integer)MyObj).intValue(); //changed
id = getResources().getIdentifier(String.valueOf((char) id), "drawable", getPackageName()); //changed
ImageViewInGroupA.setImageResource(id);
ClickedImage.setImageBitmap(null);
ClickedImage.setTag(null);
ClickedImage.setClickable(false);
currentText = (char) ((int) currentText + 1);
PointerToGroupA = PointerToGroupA + 1;
}
}