我有一个使用gridlayout中的按钮创建的小键盘,我需要编辑EditText字段。现在这是我的代码:
MainActivity.java:
Button b1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
//Do something
}
});
main.xml中:
<Button
android:id="@+id/b1"
android:text="1"
android:background="#ff3aaebb"
android:textColor="#ffffffff" />
问题是我需要能够在EditText中获取文本并对其进行修改,而且我不知道创建一个侦听器和做一个案例或做android是否更容易:onClick = &#34;的MyMethod&#34 ;.如果你能解释差异/津贴,我将不胜感激。
答案 0 :(得分:0)
在XML布局中分配方法通常是一个坏主意 - 难以跟踪,如果除了您之外的其他人尝试使用您的应用程序/部件,则难以跟踪。
对于在功能上共享相同点击次数的众多按钮,您可以将活动指定为点击侦听器
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.main);
b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(this);
b2 = (Button) findViewById(R.id.b2);
b2.setOnClickListener(this);
b3 = (Button) findViewById(R.id.b3);
b3.setOnClickListener(this);
....
}
@Override
public void onClick(View view) {
// your logic for the edit text
...
editText.setText("ADD YOUR CHANGED VALUE");
}
}
如果您需要将不同按钮的点击逻辑分开,则需要逐个进行比较
@Override
public void onClick(View view) {
if (b1.equals(view)) {
// b1 was clicked
...
editText.setText(b1.getText());
}
else if (b2.equals(view)) {
// b2 was clicked
...
editText.setText(b2.getText());
}
...
}