use*_*525 15 android button listener
我正试图围绕视图,听众等.我有一个带有2个按钮的活动:按钮和按钮停止.我的问题是我无法完全绕过Views和Listener来生成一个有效的switch语句.
例如,我想创建一个SINGLE Listener并以某种方式使用它来确定单击了哪个按钮.然后以某种方式使用我的switch语句点击按钮的ID,但是,一切都我在网上找似乎使用单独的侦听器为每个按钮,然后以某种方式使用该视图作为参数传递给switch语句.
我意识到下面的代码不正确,但我正在寻找完成上述操作所需的更改.
我想根据点击的按钮来控制MediaPlayer.我有:
Button b1 = (Button) findViewById(R.id.buttonplay);
b1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.buttonplay:
//Play voicefile
MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();
break;
case R.id.buttonstop:
//Stop MediaPlayer
MediaPlayer.create(getBaseContext(), R.raw.voicefile).stop();
break;
}
}
});
Run Code Online (Sandbox Code Playgroud)
最终,我希望以最直接的方式打开点击的任何按钮.我相信我的困惑很大一部分源于在此上下文中使用onClickListeners和Views的方式.
}
dog*_*ane 41
实现此目的的一种方法是让您的类实现OnClickListener,然后将其添加到您的按钮,如下所示:
例:
//make your class implement OnClickListener
public class MyClass implements OnClickListener{
...
//Create your buttons and set their onClickListener to "this"
Button b1 = (Button) findViewById(R.id.buttonplay);
b1.setOnClickListener(this);
Button b2 = (Button) findViewById(R.id.buttonstop);
b2.setOnClickListener(this);
...
//implement the onClick method here
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.buttonplay:
//Play voicefile
MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();
break;
case R.id.buttonstop:
//Stop MediaPlayer
MediaPlayer.create(getBaseContext(), R.raw.voicefile).stop();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Android开发人员>处理UI事件.
小智 6
只需更改类(我认为它是主Activity)来实现View.OnClickListener,并在onClick方法中放置要放置的常规onClick操作:
public class MediaPlayer extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
Button b1 = (Button) findViewById(R.id.buttonplay);
b1.setOnClickListener(this);
//{YOUR APP}
}
@Override
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.buttonplay:
//Play voicefile
MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();
break;
case R.id.buttonstop:
//Stop MediaPlayer
MediaPlayer.create(getBaseContext(), R.raw.voicefile).stop();
break;
}
}}
Run Code Online (Sandbox Code Playgroud)
我从这个视频中看到了它:http://www.youtube.com/watch?v = rm-hNlTD1H0.这对初学者来说很好.
嗨,使用开关盒在按钮之间切换非常简单:-
package com.example.browsebutton;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
Button b1,b2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int id=v.getId();
switch(id) {
case R.id.button1:
Toast.makeText(getBaseContext(), "btn1", Toast.LENGTH_LONG).show();
//Your Operation
break;
case R.id.button2:
Toast.makeText(getBaseContext(), "btn2", Toast.LENGTH_LONG).show();
//Your Operation
break;
}
}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103322 次 |
| 最近记录: |