android:按钮onClick(),无法判断是否有任何事情发生

时间:2010-09-03 14:43:37

标签: java android eclipse onclick

我的活动onClick()下面似乎没有做任何事情(没有看到任何字符串出现),但我没有得到任何错误。我错过了什么?有没有办法追踪功能?

package com.HelloTabWidget2;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class AlbumsActivity extends Activity {

    private Button closeButton;

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        this.setContentView(R.layout.tab1);
        this.closeButton = (Button)this.findViewById(R.id.button);
        this.closeButton.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
           Toast.makeText(AlbumsActivity.this, "You clicked the button", Toast.LENGTH_SHORT).show();

          }
        });


    }
}

谢谢!

3 个答案:

答案 0 :(得分:3)

我认为问题在于匿名方法,我在尝试使用您的代码时遇到错误。只需添加Implickments OnClickListenter。

如果您有多个按钮,则需要在v.getId()上添加一个开关或其他内容。

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 AlbumsActivity extends Activity implements OnClickListener {
    private Button closeButton;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        this.closeButton = (Button)this.findViewById(R.id.button);
        this.closeButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
         Toast.makeText(this, "You clicked the button", Toast.LENGTH_SHORT).show();

    }
}

答案 1 :(得分:1)

我会说,而不是写下面的代码

...setOnClickListener(new OnClickListener() {..."

我更喜欢以下的ocde

"...setOnClickListener(new View.OnClickListener() {..."

答案 2 :(得分:0)

您只需使用以下代码

即可
Button closeButton = (Button) findViewById(R.id.button);

    closeButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(), "Onclick works", Toast.LENGTH_LONG).show();

        }
    });

如果它提供例外,请去做项目 - >清洁。事情会正常运作