android设置inputtext值

时间:2012-06-22 12:25:00

标签: android android-layout nullpointerexception android-edittext textinput

我是一名年轻的计算机科学家,我正在学习Android开发。

我从今天早上开始尝试在同一版面上传递2 inputtext之间的值。 当用户编辑一个inputtext时,我想将新值粘贴到另一个inputtext

这是我的代码:

private void syncInput() { 
     ((EditText)findViewById(R.id.firstInput)).addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {              
            EditText EditText1 = (EditText)findViewById(R.id.firstInput);
            ((EditText)findViewById(R.id.SecondInput)).setText(EditTextATK.EditText1().toString());

        }        
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }        
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub

        }        
    });

}

在我的应用程序启动后,当我编辑我的firstInput时,我有错误

06-22 14:08:25.196: E/AndroidRuntime(519): java.lang.NullPointerException
06-22 14:08:25.196: E/AndroidRuntime(519):  at com.d3ckard.toolbox.activity.MyActivity$3.afterTextChanged(MyActivity.java:71)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.widget.TextView.sendAfterTextChanged(TextView.java:6145)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:6328)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.SpannableStringBuilder.sendTextHasChanged(SpannableStringBuilder.java:897)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:353)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28)
06-22 14:08:25.196: E/AndroidRuntime(519):  at android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:117)

第71行是这个:

((EditText)findViewById(R.id.SecondInput)).setText(EditTextATK.EditText1().toString());

3 个答案:

答案 0 :(得分:1)

更改

((EditText)findViewById(R.id.SecondInput)).setText(EditTextATK.EditText1().toString());

((EditText)findViewById(R.id.SecondInput)).setText(EditText1().getText().toString());

答案 1 :(得分:0)

请尝试

private void syncInput() { 
             EditText EditText1 = (EditText)findViewById(R.id.firstInput);
             EditText EditText2 = (EditText)findViewById(R.id.SecondInput);
             EditText1.addTextChangedListener(new TextWatcher() {
                public void afterTextChanged(Editable s) {              

                    EditText2.setText(EditText1.gettext().toString());

                }        
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }        
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }        
            });

        }

答案 2 :(得分:0)

您的代码行缺失getText()。它应该是:

((EditText)findViewById(R.id.SecondInput)).setText(EditTextATK.EditText1().getText().toString());