public class Second_Android extends Activity {
private TextView m_TextView;
private EditText m_EditText;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        m_TextView = (TextView) findViewById(R.id.content);
        m_EditText = (EditText) findViewById(R.id.input);
        
        m_EditText.setOnKeyListener(new OnKeyListener(){ public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
String str = Second_Android.this.getResources().getString(R.string.hello);
str += m_EditText.getText();
m_TextView.setText(str);

return false;
}
        });
    }
}上面的代码,只有在删除字符的时候,才会触发,为什么呢?

解决方案 »

  1.   

    因为framework层只对EditTextView响应删除键!
      

  2.   

    这个程序的目的是。。直接获取edittext里面的内容,然后在textview里面实时显示么?
      

  3.   

    return true;return false的时候会继续往下分发 true到此为止 不知道是不是楼主要的效果
      

  4.   

    package com.zz;import android.app.Activity;
    import android.os.Bundle;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.View.OnKeyListener;
    import android.widget.EditText;
    import android.widget.TextView;public class Test1 extends Activity {
        private TextView m_TextView;
        private EditText m_EditText;
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            m_TextView = (TextView) findViewById(R.id.content);
            m_EditText = (EditText) findViewById(R.id.input);
            m_EditText.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    m_TextView.setText(m_EditText.getText().toString());

    }

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

    }

    @Override
    public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

    }
    });
            
        }
    }
      

  5.   

    to zz880329
    你的方法验证了,可性。
    我原来的方法,包括下一种:
    public class Second_Android extends Activity implements TextWatcher {
    ...都是网上的教程,怎么都不行?是不是教程是老版本的,目前我在2.2里面实验的。
    不知道从哪个版本开始修改了的?
      

  6.   

    public class Android0408 extends Activity implements OnClickListener{实现上面的接口应该是没问题的,楼主可以尝试下
      

  7.   


    顶楼的onkey需要return true;public class Second_Android extends Activity implements TextWatcher
    这种方法需要
            m_EditText.addTextChangedListener(this);
    (btw:这种写法很丑陋,7L兄弟的匿名类写法是比较好的做法)
      

  8.   

    顶楼的onkey需要return true;这个还是不行,我楼顶上发的这种方法,好像无论如何都不行,它只会在删除字符时才触发!
      

  9.   

    onKey只能处理“删除”,“返回”,“power”等按键,软键盘上的其他按键响应不了。