我试图在onClickListner()上获取edittext值,但是当我尝试使用此`
typed = editText.getText().toString();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,typed,Toast.LENGTH_SHORT).show();
}
});
它总是显示“”,但是当我使用此代码时
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
typed = editText.getText().toString();
Toast.makeText(MainActivity.this,typed,Toast.LENGTH_SHORT).show();
}
});
它显示正确的值..为什么会这样?
答案 0 :(得分:1)
是bcoz。
typed = editText.getText().toString(); // It is Outside the listner
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,typed,Toast.LENGTH_SHORT).show();
}
});
这里是在您的“活动”或“片段加载”第一次时初始化的。当时EditText为空,但是当您单击Click时,它将获得EditText值并显示实际值。在下面的代码中显示。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
typed = editText.getText().toString();
Toast.makeText(MainActivity.this,typed,Toast.LENGTH_SHORT).show();
}
});
注意:-:OnClick是一个侦听器,当您单击该视图时会执行。因此,只要您要单击该视图,便会调用该方法。