我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn_ok);
btn.setOnClickListener(new Click());
}
我的班级女巫实现了OnClickListener
但是在方法上点击“点击”类..参数查看v ..不行。 使用方法findViewById ..总是返回null:(
任何帮助?
public class Click implements View.OnClickListener
{
@Override
public void onClick(View v) {
TextView view = (TextView) v.findViewById(R.id.resultado);
EditText textoEdit = (EditText) v.findViewById(R.id.campo_texto);
String texto = textoEdit.getText().toString();
view.setText("Obrigado " + texto);
}
}
(对不起我的英文)
答案 0 :(得分:3)
参数View v
引用您的按钮。该按钮视图不包含R.id.resultado
的元素。试试v.getRootView()
。
答案 1 :(得分:1)
按钮没有任何子视图,因此当您调用findViewById
时,将找不到任何视图。 View v
参数是生成触摸事件的视图。如果您想与布局中的TextView
和EditText
对话,您应该在onCreate
中找到它们并将它们存储为类成员。
尝试:
TextView mTexto;
EditText mTextoEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn_ok);
btn.setOnClickListener(new Click());
mTexto= (TextView) findViewById(R.id.resultado);
mTextoEdit = (EditText) findViewById(R.id.campo_texto);
}
在你的听众中:
public class Click implements View.OnClickListener
{
@Override
public void onClick(View v) {
String texto = mTextoEdit.getText();
mTexto.setText("Obrigado " + texto);
}
}