Edittext必须始终是焦点

时间:2017-10-16 06:46:25

标签: java android android-edittext focus

我有一个EditText。我希望这个edittext始终处于焦点和可写状态。如何在不触碰的情况下完成此操作?因为条形码扫描仪机器会连续向此应用程序发送数据。

anasayfa_barkod.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if ((keyEvent.getAction() == KeyEvent.ACTION_DOWN) &&
                    (i == KeyEvent.KEYCODE_ENTER)) {
                adapter.clear();
                adapter.notifyDataSetChanged();
                geciciListeyeEkle();
                listeyiYukle();
                adapter.notifyDataSetChanged();
                tutarYazdir();

                if(anasayfa_verilenUcret.getText().length()>0){
                    try{
                        String ucret=anasayfa_verilenUcret.toString();
                        String paraustu=String.valueOf(Double.parseDouble(ucret)-gelenSatis);
                        anasayfa_paraustu.setText(paraustu);
                    }catch (NumberFormatException e){
                        e.printStackTrace();
                    }
                }
                anasayfa_barkod.requestFocus(); //not working
                return true;
            }
            return false;
        }
    });

我尝试了很多方法。但是所有方法都没有用。我可以设置键盘是可见的,但光标不在edittext上。

3 个答案:

答案 0 :(得分:0)

我想我可以帮忙。在onCreate方法

中使用它
editText.requestFocus();

它对我有用。

答案 1 :(得分:0)

如果您在活动中,请在onCreate方法中添加:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT‌​_INPUT_STATE_ALWAYS_‌​VISIBLE);

如果你是片段使用这个:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT‌​_INPUT_STATE_ALWAYS_‌​VISIBLE);

答案 2 :(得分:0)

我用enter link description here

解决了我的问题
new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if ( anasayfa_barkod!= null) {
                            anasayfa_barkod.requestFocus();
                        }
                    }
                }, 1000);