首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按钮单击listener

按钮单击listener
EN

Stack Overflow用户
提问于 2014-01-06 01:55:42
回答 3查看 262关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
public class MainActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    MediaPlayer sound1, sound2;
    sound1 = MediaPlayer.create(this, R.raw.cows);
    sound2 = MediaPlayer.create(this, R.raw.sheep);

    final Button button1 = (Button) findViewById(R.id.Button01);
    button1.setOnClickListener(this);

    final Button button2 = (Button) findViewById(R.id.Button02);
    button1.setOnClickListener(this);

    public void onClick(View v) {
        switch(v.getId()) {
            case R.id.Button01:
                sound1.start();
                break;
            case R.id.Button02:
                sound2.start();
                break;
        }
    }

    protected void onDestroy() {
        sound1.release();
        sound2.release();
        super.onDestroy();
    }
}

我有一个警告,说按钮和视图不正确。

但是,我不明白上面的代码有什么问题。

似乎我需要实例化button类和View类。

但我不知道该怎么做。

EN

回答 3

Stack Overflow用户

发布于 2014-01-06 01:57:03

这应该在一个方法中

代码语言:javascript
复制
sound1 = MediaPlayer.create(this, R.raw.cows);
sound2 = MediaPlayer.create(this, R.raw.sheep);


final Button button1 = (Button) findViewById(R.id.Button01);
button1.setOnClickListener(this);

final Button button2 = (Button) findViewById(R.id.Button02);
button1.setOnClickListener(this); // should be button2

您可以在onCreate中初始化视图

代码语言:javascript
复制
Button button1,button2;
MediaPlayer sound1,sound2;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sound1 = MediaPlayer.create(this, R.raw.cows);
sound2 = MediaPlayer.create(this, R.raw.sheep);

button1 = (Button) findViewById(R.id.Button01);
button1.setOnClickListener(this);
button2 = (Button) findViewById(R.id.Button02);
button2.setOnClickListener(this);
}

然后

代码语言:javascript
复制
public class MainActivity extends Activity implements onClickListener {
票数 3
EN

Stack Overflow用户

发布于 2016-03-17 21:47:23

首先你必须把final Button button1 = (Button) findViewById(R.id.Button01); button1.setOnClickListener(this); final Button button2 = (Button) findViewById(R.id.Button02); button1.setOnClickListener(this);放在onCreate()方法中。

  • 他们写(implements after extends ),这会要求实现方法,点击

这将自动创建onclick方法。在其中放入切换代码。

希望它能工作,并帮助你解决错误。

票数 2
EN

Stack Overflow用户

发布于 2014-01-06 03:40:14

在“nClick`”方法之上实现View.onClickListener,应该包含@Override表示法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20937052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档