-1

I created two set of ImageViews Say ViewGroup A(has 26) and B(has 26);

&

also 26 Images named as 'a', 'b' ......... 'z' i.e image a has A image

Step1: I load 26 images randomly to the Group B (26 Imageviews) and while loading I set the name of the Image in ImageView's tag (int value) i.e 97 for Image'a'

Step2 When user clicks the image in the correct order A B C ... Z ,then image will move from Group B to Group A Imageview 1, 2.... 26..

Here the below code does the second step2.....

Note: currentText= 'a'

         // 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: error opening trace file: Permission denied (13) 04-05 09:55:28.074 5168-5168/com.example.android.myabc E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering 04-05 09:56:36.444 5168-5168/com.example.android.myabc E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) at android.view.View.performClick(View.java:4084) at android.view.View$PerformClick.run(View.java:16966) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:4084)  at android.view.View$PerformClick.run(View.java:16966)  at android.os.Handler.handleCallback(Handler.java:615)  at android.os.Handler.dispatchMessage(Handler.java:92)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4745)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)  at dalvik.system.NativeStart.main(Native Method)  Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x61 at android.content.res.Resources.getValue(Resources.java:1013) at android.support.v7.widget.ResourcesWrapper.getValue(ResourcesWrapper.java:204) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:332) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190) at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100) at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:73) at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:81) at com.example.android.myabc.MainActivity.ImageClicked(MainActivity.java:60) at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)  at android.view.View.performClick(View.java:4084)  at android.view.View$PerformClick.run(View.java:16966)  at android.os.Handler.handleCallback(Handler.java:615)  at android.os.Handler.dispatchMessage(Handler.java:92)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4745)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)  at dalvik.system.NativeStart.main(Native Method)  04-05 09:56:37.234 1503-1503/com.android.launcher E/emuglGLESv2_enc: a vertex attribute index out of boundary is detected. Skipping corresponding vertex attribute.

Murali
  • 51
  • 7

2 Answers2

0

The problem is that your tag is an Integer object and not an int primitive. This code checks that the object is of the correct type and gets the int value out of the Integer if it is valid (0 otherwise):

Object obj = ClickedImage.getTag();
nameFromImagetag = (obj instanceof Integer) ? ((Integer)obj).intValue() : 0;
Doron Yakovlev Golani
  • 5,188
  • 9
  • 36
  • 60
0
Modified code below! ..........Hey Its working king ing ng.g..:) 

Kindly Ignore the scraps.... :)

   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;
    }

}
Murali
  • 51
  • 7