-1

これを解決する必要があります。Edit(X) と Edit(Y) という名前の 2 つの Edit Text があるので、Edit(X) で入力の長さを書き込んで設定できますが、 Edit(X) の同じ値を取得するため、たとえば 2 つの 6 桁のみを Edit(x) に設定して書き込みを終了し、Edit(Y) に渡して書き込みを開始する方法はありません。 Edit(X) とは独立した新しい入力。ここに私のコードの一部があります。

private class BtnListener implements OnClickListener {

    public void onClick(View view) {
       switch (view.getId()) {
           case R.id.btnNum0Id:
           case R.id.btnNum1Id:
           case R.id.btnNum2Id:
           case R.id.btnNum3Id:
           case R.id.btnNum4Id:
           case R.id.btnNum5Id:
           case R.id.btnNum6Id:
           case R.id.btnNum7Id:
           case R.id.btnNum8Id:
           case R.id.btnNum9Id:
                String inDigit = ((Button) view).getText().toString();
                String inDiget = ((Button) view).getText().toString();
                if (inStr.equals("0")) {
                    inStr = inDigit; 
                } else {
                    inStr += inDigit;
                }
                if(inCtr.equals("0")){
                    inCtr = inDiget;
                } else {
                    inCtr += inDiget;
                }
                editX.setText(inStr);
                //editY.setText(inCtr);
                editX.addTextChangedListener(new TextWatcher() {
                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                        button2.setOnClickListener( new OnClickListener(){
                            public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                                //String input = editX.getText().toString();
                                // String toEditText1 = input.substring(0,2); 
                                // editZ.setText(toEditText1);
                                //String toEditText2 = input.substring(2);
                                //inputContent2.setText(toEditText2);  
                            }
                        });
                    }
                    public void onTextChanged(CharSequence s, int start, int before, int count) {

                    }
                    public void afterTextChanged(Editable s) {
                        if(s.length() == 4){
                            button2.setOnClickListener( new OnClickListener() {          
                                public void onClick(View v){
                                    editY.requestFocus();
                                    editY.setText(inStr);
                                }
                            });
                        }else{
                        }
                   }
                });
       }
   }
}
4

1 に答える 1

0

Edit(X).addTextChangedListener(...) を使用し、その中で Edit(Y).requestFocus() を呼び出す必要があると思います Edit(X) のテキストが必要なサイズになっている場合。

また、xml ファイルで android:maxLength="6" を使用します。

于 2012-10-09T20:17:39.553 に答える