use*_*685 69 android onclicklistener
我目前正在Android上制作一个简单的计算器应用程序.我试图设置代码,以便当按下数字按钮时,它会用该数字更新计算器屏幕.目前我这样做.
Button one = (Button) findViewById(R.id.oneButton);
one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView output = (TextView) findViewById(R.id.output);
output.append("1");
}
});
Run Code Online (Sandbox Code Playgroud)
它可以工作,但我正在为计算器上的每个按钮编写相同的代码.你可以想象它是多余的.无论如何我能以更有效的方式编写这段代码吗?一个涉及不为每个按钮编写此方法的人?
Pra*_* シ 215
您只需按照以下步骤轻松实现......
你不必onClickListener为Every 编写新的Button...只需实现View.OnClickLister你的Activity/ Fragment..它将实现onClick()为处理onClick事件而调用的新方法Button,TextView`等.
OnClickListener()在你的Activity/ 实施Fragment
public class MainActivity extends Activity implements View.OnClickListener {
}
Run Code Online (Sandbox Code Playgroud)
- 在Activity/Fragment中实现onClick()方法
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onClick(View v) {
// default method for handling onClick Events..
}
}
Run Code Online (Sandbox Code Playgroud)
- 实现
OnClickListener()按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
Button one = (Button) findViewById(R.id.oneButton);
one.setOnClickListener(this); // calling onClick() method
Button two = (Button) findViewById(R.id.twoButton);
two.setOnClickListener(this);
Button three = (Button) findViewById(R.id.threeButton);
three.setOnClickListener(this);
}
Run Code Online (Sandbox Code Playgroud)
- 按ID查找按钮并实施您的代码..
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.oneButton:
// do your code
break;
case R.id.twoButton:
// do your code
break;
case R.id.threeButton:
// do your code
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此链接:
https://androidacademic.blogspot.in/2016/12/multiple-buttons-onclicklistener-android.html
这样可以更轻松地处理许多按钮点击事件,并使管理它看起来很简单......
And*_*dro 49
你可以设置属性:
android:onClick="buttonClicked"
Run Code Online (Sandbox Code Playgroud)
在每个按钮的xml文件中,并在java代码中使用它:
public void buttonClicked(View view) {
if (view.getId() == R.id.button1) {
// button1 action
} else if (view.getId() == R.id.button2) {
//button2 action
} else if (view.getId() == R.id.button3) {
//button3 action
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了实现View.OnClickListener的专用类.
public class ButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我在MainActivity中创建了这个类的实例
private ButtonClickListener onClickBtnListener = new ButtonClickListener();
Run Code Online (Sandbox Code Playgroud)
然后设置onClickListener为按钮
btn.setOnClickListener(onClickBtnListener);
Run Code Online (Sandbox Code Playgroud)
在每个按钮上设置一个标签,以便您可以使用它,在这种情况下可能是整数.然后,您只需要一个OnClickListener用于所有按钮:
Button one = (Button) findViewById(R.id.oneButton);
Button two = (Button) findViewById(R.id.twoButton);
one.setTag(new Integer(1));
two.setTag(new Integer(2));
OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView output = (TextView) findViewById(R.id.output);
output.append(v.getTag());
}
}
one.setOnClickListener(onClickListener);
two.setOnClickListener(onClickListener);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
161986 次 |
| 最近记录: |