I have a put together a very simple program which exhibits this
behavior.  Run the following program and then do the following

1) Click in the edit control of the first page which should bring up
the soft keyboard
2) Using the soft keyboard type 'aaa'
3) Click the 'Press This' button
4) The view switches to the next page
5) Click in the edit control of this new page and using the soft
keyboard type 'bbb'
6) Click the 'Press This' button
7) You should now see the first page with the edit control which still
has the 'aaa' text in it.
8) Click in that edit control and enter 'ccc' via the soft keyboard.
9) Note that nothing appears to happen (except you get some
MediaPlayer errors in LogCat???)
10) Click the "Press This' button which switches back to the second
page.
11) Note that the 'ccc' you typed is in this edit control

Clearly, even though the second page is no longer visible, it somehow
still has the focus.  I have tried using the 'requestFocus' function
to set the focus into both the EditText control and the LinearLayout
view of the currently visible view, but this does not seem to have any
effect.  Can someone please tell me how to make this work?

Thanks


package com.gabysoft.testandroid;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

public class TestAndroid extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    LinearLayout     ll1;
    LinearLayout    ll2;
    boolean one = true;

    LinearLayout CreatePage()
    {
        LinearLayout ll;
        EditText et;

        ll = new LinearLayout(this);
        et = new EditText(this);
        LayoutParams lp = new LinearLayout.LayoutParams(100, 50);
        et.setLayoutParams(lp);
        Button btn = new Button(this);
        btn.setText("Press This");
        btn.setOnClickListener(this);

        ll.addView(et);
        ll.addView(btn);

        return(ll);
    }

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

        ll1 = CreatePage();
        ll2 = CreatePage();

        setContentView(ll1);
    }

    @Override
    public void onClick(View arg0)
    {
        if (one)
        {
            setContentView(ll2);
        }
        else
        {
            setContentView(ll1);
        }

        one    = !one;
    }
}

On Oct 9, 10:35 am, John Gaby <jg...@gabysoft.com> wrote:
> I have an app where the user is entering some data via an EditText
> control.  This is done by alternating between 2 pages each of which
> obtains one piece of data.  When I start, I create the first page and
> make it active by calling the setContentView for the activity. I also
> set the focus into the EditText control on this page.  When I do that,
> I am able to bring up the soft keyboard and type text into the
> control.
>
> I then press a 'Next' button, which brings up the second page.  I
> create this page which has another EditText control, and make it
> active by calling the setContentView.  Once again, this works
> correctly, and I am able to enter text into the control.
>
> When I press the 'Next' button again, the first page is then make
> active again (I am reusing the origonal page, and do not recreate
> it).  However, when I do this, I can no longer type text with the soft
> keyboard and have it go into the EditText control.  The control shows
> a blinking cursor as if it has focus, but if I type on the soft
> keyboard, nothing happens, except I get the following errors in
> LogCat:
>
> 10-09 17:28:52.722: ERROR/MediaPlayerService(30):   error: -2
> 10-09 17:28:52.722: ERROR/MediaPlayer(52): Unable to to create media
> player
> 10-09 17:28:52.722: WARN/AudioService(52): MediaPlayer IOException:
> java.io.IOException: setDataSource failed.: status=0x80000000
>
> Note that if I don't bring up the soft keyboard and use the hardware
> keyboard instead, everything seems to work correctly.
>
> Obviously, I am doing something wrong here, but I cannot figure out
> what. Can anyone give me a clue as what is happening here?
>
> Thanks.

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

Reply via email to