我有四个actv,他们工作得很好。我创建了一个AutoCompleteTextView让他们知道用户在任何时间点选择/按下这四个选项中的任何一个。然而,经过仔细检查,我发现我不得不点击一个actv两次才触发它。
这是我的代码:
在我的onClickListener()中,我初始化actv并设置onCreate()

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

但是,只有最初的点击被正确地检测到。所有随后的点击只注册一次用户点击同一个actv两次。
有什么解决办法吗?谢谢您。

最佳答案

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:
            actvBrand.requestFocus();
                Log.d("Hi", "Brand pressed");
                break;

            case R.id.actvItemName:
             actvItemName.requestFocus();
                Log.d("Hi", "Item name pressed");
                break;

            case R.id.actvPart:
         actvPart.requestFocus();
                Log.d("Hi", "Part pressed");
                break;

            case R.id.actvBarcode:
                actvBarcode.requestFocus();
                Log.d("Hi", "Barcode pressed");
                break;
        }
    }
};

关于android - Android-AutoCompleteTextView onClickListener可以在第二次单击后工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23290861/

10-12 05:32