1

2 つの画面があります。最初の画面には、次の画面を表示するためのボタンとListView. ListViewアイテムは最初はフォーカス可能です。しかし、2 番目の画面から 1 番目の画面に戻る ( を呼び出すsetContentView( )) と、リストにフォーカスできなくなっているようです。

これは Android 4.0 のバグであると確信しており、他の誰かが遭遇したかどうかを確認しています。コード スニペットは次のとおりです。

public class ListTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        createFirstScreen();
        createSecondScreen();

        setContentView(mFirstScreen);
    }
    public void createFirstScreen()
    {
        mFirstScreen = new LinearLayout(this);
        mNextBtn = new Button(this);
        mNextBtn.setText("Next");
        mNextBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                setContentView(mSecondScreen);
            }
        });

        mListView = new ListView(this);
        String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                  "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                  "Linux", "OS/2" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                  android.R.layout.simple_list_item_1, android.R.id.text1, values);
        mListView.setAdapter(adapter);

        mFirstScreen.addView(mNextBtn);
        mFirstScreen.addView(mListView);
    }

    public void createSecondScreen()
    {
        mSecondScreen = new LinearLayout(this);
        mBackBtn = new Button(this);
        mBackBtn.setText("Back");
        mBackBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                setContentView(mFirstScreen);
            }
        });
        mSecondScreen.addView(mBackBtn);
    }

    private LinearLayout mFirstScreen;
    private ListView mListView;
    private Button mNextBtn;
    private Button mBackBtn;
    private LinearLayout mSecondScreen;
}
4

0 に答える 0