我有四個AutoCompleteTextView
(ACTV),他們工作得很好。我創建了一個onClickListener()
,讓他們知道用戶何時在任何時間點選擇/按下這四個中的任何一個。然而,經過仔細檢查,我發現我必須在觸發前點擊兩次ACTV。Android - AutoCompleteTextView onClickListener在第二次點擊後工作
這裏是我的代碼:
在我onCreate()
,我初始化ACTV並設置onClickListener()
:
brandACTV = (AutoCompleteTextView) findViewById(R.id.actvBrand);
itemACTV = (AutoCompleteTextView) findViewById(R.id.actvItemName);
partACTV = (AutoCompleteTextView) findViewById(R.id.actvPart);
barcodeACTV = (AutoCompleteTextView) findViewById(R.id.actvBarcode);
brandACTV.setOnClickListener(actvClicked);
itemACTV.setOnClickListener(actvClicked);
partACTV.setOnClickListener(actvClicked);
barcodeACTV.setOnClickListener(actvClicked);
和onClickListener()
定義,像這樣:
OnClickListener actvClicked = new OnClickListener(){
@Override
public void onClick(View view){
Log.d("Hi", "onClickActivated");
switch (view.getId()) {
case R.id.actvBrand:
Log.d("Hi", "Brand pressed");
break;
case R.id.actvItemName:
Log.d("Hi", "Item name pressed");
break;
case R.id.actvPart:
Log.d("Hi", "Part pressed");
break;
case R.id.actvBarcode:
Log.d("Hi", "Barcode pressed");
break;
}
}
};
然而,只有最初的點擊被正確檢測到。所有後續點擊只會在用戶點擊兩次相同的活動時註冊。
有關如何解決此問題的任何想法?謝謝。
試試這個...這可能幫助 –
很抱歉這麼晚纔回復,你是怎麼在第一個代碼塊改變?另外,你的意思是'brandACTV.requestFocus();'而不是'actvBrand.requestFocus();'?如果我甚至不能進入'case'語句,'requestFocus()'會如何幫助?此解決方案不起作用。 – Razgriz