Android 设置按钮onclick和listener
我使用gridlayout中的按钮创建了一个numpad,我需要编辑一个EditText字段。下面是我的代码: MainActivity.java:Android 设置按钮onclick和listener,android,button,onclicklistener,buttonclick,Android,Button,Onclicklistener,Buttonclick,我使用gridlayout中的按钮创建了一个numpad,我需要编辑一个EditText字段。下面是我的代码: MainActivity.java: Button b1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b1 = (Button) findViewById(
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=“mymethod”更容易。如果您能解释这些差异/优势,我将不胜感激。在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());
}
...
}
我得到的类或接口预期的扩展等!答案已更新。对于您的活动,只需附加
实现视图。OnClickListener
谢谢!但什么是应用程序活动?它说它应该在名为ApplicationActivity.java.Answer的文件中声明。由于您正在使用MainActivity
,答案代码已更改。非常感谢,但仍有一部分没有回答,EditText呢?