Hi Robert,

I got some problem using your method to switch views. The code is as
following.

My problem is: when the main screen of emulator is set to view1 and I
press key, the MyView1.onKeyDown() will be called.

But 10s later, when the view2 is set and I press key, the
MyView2.onKeyDown() will NOT be called.
Unless I click on the main screen of emulator, then MyView2.onKeyDown
() will start to respond key press.
Even though, the first key press will NOT be correctly handled.

WARN/KeyCharacterMap(670): No keyboard for id 0
WARN/KeyCharacterMap(670): Using default keymap: /system/usr/keychars/
qwerty.kcm.bin -- the 1st key press is not correctly handled.
11-30 10:04:19.951: INFO/System.out(670): enter onKeyDown() in
MyView2! -- keyCode: 20

So any idea why this issue happens?
Thanks!

=============================
MyActivity:
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        view1 = new MyView1(this);
        view1.setFocusable(true);
        setContentView(view1);

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                mHandler.post(mUpdateResults);
            }}, 10000);
    }

    View view1, view2;

    final Handler mHandler = new Handler();
    final Runnable mUpdateResults = new Runnable() {
        public void run() {
            updateUi();
        }
    };

    public void updateUi() {
        view2 = new MyView2(this);
        view2.setFocusable(true);
        setContentView(view2);
    }
=================
public class MyView1 extends View {

    public MyView1(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(android.graphics.Canvas canvas) {
        canvas.drawColor(Color.BLUE);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent msg) {
        System.out.println("enter onKeyDown() in MyView1! -- keyCode:
" + keyCode);

        return true;
    }
}
================
public class MyView2 extends View {

    public MyView2(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(android.graphics.Canvas canvas) {
        canvas.drawColor(Color.WHITE);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent msg) {
        System.out.println("enter onKeyDown() in MyView2! -- keyCode:
" + keyCode);

        return true;
    }
}
===========================

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to