在一个编辑文本上调用android ontextchanged侦听器中的Web服务并填充另一个edittext

时间:2011-07-28 12:16:33

标签: android android-edittext

我现在可以调用webservices。

但在我的项目中,我想填充与赞助商ID相对应的赞助商名称。

为了做到这一点,我想调用关于文本更改的sponserid edittext监听器的web服务,或者我必须监视edittext的焦点变化。

请指导我如何调用webservice并填充另一个edittext。

我应该接受keyevent ???

我到目前为止所尝试的代码是:

txtSpnID.setFocusable(true);
        if(txtSpnID.isFocused()){
            Log.v("TAG", "focus is on txtspid");
        }else{
            Log.v("TAG", "focus lost from txtspid");
        }

这会打印从logx上的txtspid丢失的焦点。

if(txtSpnID.hasFocus()){
            Log.v("TAG", "focus is on txtspid");
        }else{
            Log.v("TAG", "focus lost from txtspid");
        }

这也打印相同的

txtSpnID.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub
                Log.v("textfield","On text changed");
            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                    int arg2, int arg3) {
                // TODO Auto-generated method stub
                Log.v("textfield","before text changed");
            }

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
                Log.v("textfield text",txtSpnID.getText().toString());
                Toast.makeText(Registration.this, "SponserID is"+txtSpnID.getText().toString(),
                        Toast.LENGTH_LONG);
                if (txtSpnID.getText().length() == 0) {
                    Toast.makeText(Registration.this, "Enter SponserID ",
                            Toast.LENGTH_LONG);
                } else {
                    String spnId = txtSpnID.getText().toString();
                    try {
            //call webservice here and get response from the service
                    } catch (Exception e) {

                    }
                }
            }
        });

这将在logcat上打印相应的日志 但它没有显示吐司:( 请帮帮我们

1 个答案:

答案 0 :(得分:1)

你刚做了Toast ......但是你没有显示它...使用Toast.show()这样Toast.makeToast(.....).show();

....记得在不同的线程中调用Web服务(以防止ANR)