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