我的页面中有许多EditText
元素以及两个按钮。我希望用户触摸任何一个EditText
字段并单击任何按钮,以将某个值插入到他们所触摸的EditText
字段中。不允许使用键盘输入。请帮我做这件事。
发布于 2013-06-27 20:11:31
您可以做的一件事是声明一个全局变量evalue
,它将通过使用onTouchListener
告诉您哪个是编辑文本,然后根据evalue
的值,您可以通过单击按钮将文本值设置为edittext。希望你能理解。
其代码可以如下所示:
EditText e1,e2;
Button b1,b2;
String evalue;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
e1=(EditText)findViewById(R.id.editText1);
e2=(EditText)findViewById(R.id.editText2);
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
e1.setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View arg0, MotionEvent arg1)
{
evalue="1";
return false;
}
});
e2.setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View arg0, MotionEvent arg1)
{
evalue="2";
return false;
}
});
b1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
if(evalue=="1")
{
e1.setText("yes");
}
if(evalue=="2")
{
e2.setText("yes");
}
}
});
b2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
if(evalue=="1")
{
e1.setText("No");
}
if(evalue=="2")
{
e2.setText("No");
}
}
});
}
这是一种逻辑编码..没有达到标准..如果你找到更好的。那就用它吧。谢谢。
发布于 2013-06-27 19:36:56
您可以使用View.OnFocusChangeListener
来检测任何视图(edittext)是否获得或失去焦点。
for (EditText view : editList){
view.setOnFocusChangeListener(focusListener);
}
....
private OnFocusChangeListener focusListener = new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus){
focusedView = v;
} else {
focusedView = null;
}
}
}
它放在你的活动或片段中,或者你拥有EditTexts的任何地方。....
只是说你可以把它放在类中的任何地方。显然,您需要创建一个包含它们的数组,也就是editList
。
发布于 2015-12-23 15:46:33
这对我很有效。它返回一个布尔值。
myEditText.hasFocus()
https://stackoverflow.com/questions/17341946
复制相似问题