Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OnKeyListener not working

Tags:

android

I am trying to implement an animation on key event. Same code is working fine on OnClickListener but OnKeyListener, nothing is happening. Even no error message on Logcat.

Please help me to solve this problem. Below is my code. Please tell me where I'm wrong.

package com.example.SliderImage;

import android.app.Activity;

import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ViewFlipper;

public class SliderImage extends Activity {
    ViewFlipper flipper;
    String value;
    int i;

     int menuArray[] = {R.id.gtmain, R.id.gtmini, R.id.gtmore};

     protected void showPrevious() {
            // TODO Auto-generated method stub

        }
        protected void setInAnimation(Animation inFromRightAnimation) {
            // TODO Auto-generated method stub

        }
        protected void setOutAnimation(Animation outToLeftAnimation) {
            // TODO Auto-generated method stub

        }
        protected void showNext() {
            // TODO Auto-generated method stub

        }
        private Animation inFromRightAnimation() {

            Animation inFromRight = new TranslateAnimation(
            Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
            Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            inFromRight.setDuration(500);
            inFromRight.setInterpolator(new AccelerateInterpolator());
            return inFromRight;
            }
        private Animation outToLeftAnimation() {

            Animation outtoLeft = new TranslateAnimation(
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            outtoLeft.setDuration(500);
            outtoLeft.setInterpolator(new AccelerateInterpolator());
            return outtoLeft;
            }



        private Animation inFromLeftAnimation() {

            Animation inFromLeft = new TranslateAnimation(
            Animation.RELATIVE_TO_PARENT,  -1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
            Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            inFromLeft.setDuration(500);
            inFromLeft.setInterpolator(new AccelerateInterpolator());
            return inFromLeft;
            }
        private Animation outToRightAnimation() {

            Animation outtoRight = new TranslateAnimation(
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  +1.0f,
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            outtoRight.setDuration(500);
            outtoRight.setInterpolator(new AccelerateInterpolator());
            return outtoRight;
            }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.home);

     flipper = (ViewFlipper) findViewById(R.id.flipper);

     final  Button miniButton = (Button) findViewById(R.id.gtmini);
     final Button mainButton = (Button) findViewById(R.id.gtmain);
     final Button moreButton = (Button) findViewById(R.id.gtmore);

     miniButton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
             flipper.setInAnimation(inFromRightAnimation());
             flipper.setOutAnimation(outToLeftAnimation());
             flipper.showNext();      
         }
     });

     mainButton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
             flipper.setInAnimation(inFromLeftAnimation());
             flipper.setOutAnimation(outToRightAnimation());
             //flipper.showPrevious();
             flipper.showNext(); 
         }
     });
     moreButton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
             flipper.setInAnimation(inFromLeftAnimation());
             flipper.setOutAnimation(outToRightAnimation());
            // flipper.showPrevious();
             flipper.showNext();
         }
     });

     mainButton.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            String a1=String.valueOf(keyCode);
            Log.i("listvalaaaaaaaaaa",a1);
            if (keyCode==66) {
                //String value=mainButton.getText().toString();
                if(value.equalsIgnoreCase("GO TO MAIN"))
                {
                    //startActivity(new Intent(Start.this,MainEpg.class));
                }
                if(value.equalsIgnoreCase("GO TO MINI"))
                {
                    //startActivity(new Intent(Start.this,MiniEpg.class));
                }
            }

             if (keyCode==22) {

                 Log.i("insideright","ghkhkjhk");
                 flipper.setInAnimation(inFromRightAnimation());
                 flipper.setOutAnimation(outToLeftAnimation());
                 flipper.showNext();      

             }
                 int c = moreButton.getId();
                 int b = mainButton.getId();
                 int a = moreButton.getId();

                 menuArray[0] = b;
                 menuArray[1] = c;
                 menuArray[2] = a;

                 moreButton.setId(menuArray[i]);
                 miniButton.setId(menuArray[++i]);
                 mainButton.setId(menuArray[++i]);

                 mainButton.requestFocus();
                 i = 0;
                //mainButton.requestFocus();
                 mainButton.setSelected(true);
                 flipper.setInAnimation(inFromRightAnimation());
                 flipper.setOutAnimation(outToLeftAnimation());
                 flipper.showNext();      

             if (keyCode==21) {

                 int a11 = moreButton.getId();
                 int b1 = mainButton.getId();
                 int c1 = moreButton.getId();

                 menuArray[0] = c1;
                 menuArray[1] = b1;
                 menuArray[2] = a11;

                 moreButton.setId(menuArray[i]);
                 miniButton.setId(menuArray[++i]);
                 mainButton.setId(menuArray[++i]);

                 mainButton.requestFocus();
                 i = 0;

                //mainButton.requestFocus();
                 mainButton.setSelected(true);
                /* flipper.setInAnimation(inFromRightAnimation());
                 flipper.setOutAnimation(outToLeftAnimation());
                 flipper.showPrevious();*/
             }
            return true;
            }
        });


    }



}
like image 652
Indrajit Kumar Avatar asked Feb 02 '11 19:02

Indrajit Kumar


1 Answers

KeyCodes depends on the keyboard you use. Meaning you may get a different KeyCode from different keyboards for the same key. And remember, from the documentation,

View.OnKeyListener is only useful for hardware keyboards; a software input method has no obligation to trigger this listener.

like image 74
Taha Avatar answered Oct 02 '22 18:10

Taha