2 개의 화면이있는 작은 테스트 앱을 만들었습니다. 첫 번째 화면에는 EditText와 Button이 있습니다. 두 번째 화면은 세 개의 정적 항목을 보여주는 단순한 ListActivity입니다. ListActivity는 사용자가 첫 번째 화면에서 Button을 클릭하거나 TextEdit에서 Enter 키를 눌렀을 때 시작됩니다. 이상한 일은 EditText보기에서 Enter 키를 눌러 ListActivity를 시작한 다음 시작 직후 첫 번째 목록 항목을 선택한 경우입니다. 버튼을 두드려 시작한 경우 모든 것이 정상이며 목록 항목이 선택되지 않습니다.EditText 이벤트에서 Listactivity를 시작할 때 첫 번째 목록 항목이 선택되었습니다.
이는 ListActivity를 시작하는 코드입니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startup);
final Button b = (Button)findViewById(R.id.but);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startList();
}
});
final EditText t = (EditText)findViewById(R.id.in_text);
t.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
startList();
return true;
}
});
}
public void startList(){
Intent i = new Intent(this, TestList.class);
startActivity(i);
}
이는 ListActivity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
String[] str = {"a", "b", "c"};
ListAdapter adapter = new ArrayAdapter<String>(this, R.layout.list_item, str){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row =
null == convertView ?
inflater.inflate(R.layout.list_item, null) :
convertView;
String s = getItem(position);
TextView tvid = (TextView)row.findViewById(R.id.word_suggestion_item_text);
tvid.setText(s);
return row;
}
};
setListAdapter(adapter);
}
그런 일이 왜 어떤 아이디어의 코드? ListActivity 가가의 EditText 뷰에서 키 를 Enter 키를 눌러 시작 경우
사이먼
아, 그게 기능이 아니라 버그 야! 이제 완전히 이해가됩니다! 감사합니다. – SimonSays