我想将编辑文本引用传递给按钮的onClickListener,我有不同的选择: - 我可以通过创建自定义类并实现onClickListener来传递它,如下所示: -
public class MyLovelyOnClickListener implements OnClickListener
{
EditText myLovelyEditText;
public MyLovelyOnClickListener(EditText myLovelyVariable) {
this.myLovelyVariable = myLovelyVariable;
}
@Override
public void onClick(View v)
{
String editTextValue = myLovelyEditText.getText().toString();
}
};
MyLovelyOnClickListener onClickListenerVar = new MyLovelyOnClickListener(myEditText);
ButtonVar.setOnClickListener(onClickListenerVar);
我的直觉说前者是正确的方法。
但是我也可以将EditText作为成员变量并从onClickListener内部引用它。这样做有什么问题?
ButtonVar.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
String editTextValue = mEditText.getText().toString();
}
});
第一种方法与第二种方法相比是否有任何优势?如果是,那又是什么?
答案 0 :(得分:0)
只需在您的Activity(或片段)中创建该字段并使用该引用。
private EditText editText;
在OnCreate中
editText = (EditText)findViewById(R.id.your_id);
您可以在onClickListener中使用:
editText.getText()