简体   繁体   English

将侦听器从一个edittext更改为第二个edittext

[英]change listener from one edittext to a second edittext

Looking for help on this. 在这方面寻求帮助。 I have 2 EditTexts on an activity. 我在一个活动上有2个EditTexts。 When user get to screen the first EditText has focus for input from a scanner. 当用户进入屏幕时,第一个EditText具有焦点,可以从扫描仪输入。 User scans barcode and program validates it is a good read by finding corresponding item from database. 用户扫描条形码,程序通过从数据库中找到相应的项目来验证它是一个很好的阅读器。 If finds the item I am trying to get the second EditText to have focus for the next scan. 如果找到该项目,我正在尝试使第二个EditText具有下一次扫描的焦点。

I am new to java (VB windows developer) and struggling to accomplish this. 我是java的新手(VB Windows开发人员),正在努力实现这一目标。 No matter what I have tried everytime I scan the second barcode the first EditText gets what is scanned. 不管我每次扫描第二个条形码时都尝试过什么,第一个EditText都会得到扫描的内容。

I am having hard time figuring out how to change the listener to be focused on Second EditText. 我很难弄清楚如何将侦听器更改为专注于Second EditText。

Can someone please explain how to change the focus to second EditText after a valid first scan. 有人可以解释一次有效的第一次扫描后如何将焦点更改为第二个EditText。

public void listener() {
        scanner.scannerListener = new ScannerListener() {
            @Override
        public void listener() {
           sChecker = mEntryText.getText().toString();

            if (sChecker.equals("")) ;
            {
                mScan = scanner.getScanResult();
                Timber.d("The barcode is " + mScan);
                if (!mScan.equals("")) {

                    int lmScan = mScan.length();
                    if (lmScan > 15) {
                        checkGs1Barcode();
                    }
                    String s = DatabaseMgr.VerifyItem(mScan);
                    if (s.length() > 1) {
                        if (s.equalsIgnoreCase("Unknown Item###")) {
                            Toast.makeText(getApplicationContext(), "Unknown Item", Toast.LENGTH_SHORT).show();
                        } else if (s.equalsIgnoreCase("Multiple Items###")) {
                            setupMultiItems(mScan);
                        } else {
                            String[] sArr = s.split("\\#");
                            String IsItem = sArr[0];
                            String IsItemDesc = sArr[1];
                            String isLevel = sArr[2];
                            String isLvlDesc = sArr[3];
                            Button ItemDescText = findViewById(R.id.btnDesc);
                            ItemDescText.setText(IsItemDesc);
                            TextView ItemUPCText = findViewById(R.id.editUPC);
                            ItemUPCText.setText(mScan);

                            Integer iQTY = ValidateQTYinArea(IsItem, "RTN", myArea, isLevel);
                            TextView mQty = findViewById(R.id.txtDetail);
                            String myResult = "RTN - " + myArea + " - " + isLvlDesc + " - " + iQTY;
                            mQty.setText(myResult);
                            mEntryText.setBackgroundColor(getResources().getColor(R.color.colorWhite));

                            mLoc.setBackgroundColor(getResources().getColor(R.color.colorYellow));
                            mLoc.requestFocus();
                        }
                    }
                } else {
                    mLoc.setText(scanner.getScanResult());
                }

            }

        }
    };
}

the mLoc.setText line is not getting hit mLoc.setText行未命中

So what you need to do is: 因此,您需要做的是:

if (sChecker.equals("")){
   mEditText1.setText("text to be set");
}else{
   mEditText2.setText("text to be set");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM