android按钮事件侦听器不工作

android按钮事件侦听器不工作,android,Android,我知道这是最基本的东西,但我想不出来。这是我的密码: public class test extends Activity{ private static final String TAG = "test"; private Button Test; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstan

我知道这是最基本的东西,但我想不出来。这是我的密码:

public class test extends Activity{

     private static final String TAG = "test";
     private Button Test;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.v(TAG,"onCreate is called.");

        this.setContentView(R.layout.main);
        Test= (Button)this.findViewById(R.id.Test);


        Test.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                Log.v(TAG, "onClick Entered.");
                // Perform action on click
            }
        });

        setContentView(R.layout.main);
    }
}
我可以看到第一个日志“OnCreate”,但按钮单击事件侦听器似乎不存在 因为我看不到“OnClick Entered”而无法工作。我哪里做错了


谢谢

showTrafficButton在哪里定义?你确定这不应该是:

Button showTrafficButton = (Button)this.findViewById(R.id.Test);

showTrafficButton在哪里定义?你确定这不应该是:

Button showTrafficButton = (Button)this.findViewById(R.id.Test);

以下是一些值得尝试的意见/事项:

  • 您的命名约定是反向的。您应该以标题大小写命名活动,以驼峰大小写命名变量(例如,您的活动“test.java”应为test.java,您的
    按钮测试应为
    按钮测试
    )。这不是你的问题,只是需要记住的一点

  • 您调用了
    super.onCreate()
    两次。我真的不知道这有什么影响,但它不应该存在。您还调用了两次
    setContentView()。一次调用onCreate,一次调用setContentView就是您应该拥有的一切。编辑:根据杰姆斯的评论,显然是三次

  • 在main.xml中,是否有id为test的按钮?(即,
    android:id=“@+id/test”


一些评论/尝试事项:

  • 您的命名约定是反向的。您应该以标题大小写命名活动,以驼峰大小写命名变量(例如,您的活动“test.java”应为test.java,您的
    按钮测试应为
    按钮测试
    )。这不是你的问题,只是需要记住的一点

  • 您调用了
    super.onCreate()
    两次。我真的不知道这有什么影响,但它不应该存在。您还调用了两次
    setContentView()。一次调用onCreate,一次调用setContentView就是您应该拥有的一切。编辑:根据杰姆斯的评论,显然是三次

  • 在main.xml中,是否有id为test的按钮?(即,
    android:id=“@+id/test”


您正在调用
setContentView
两次,这是在设置点击式侦听器之后的第二次。这意味着您添加侦听器的视图不再可见,它将替换为该视图的另一个实例。删除您正在调用的第二个
setContentView

设置单击式侦听器后的第二次
setContentView
。这意味着您添加侦听器的视图不再可见,它将替换为该视图的另一个实例。删除第二个
setContentView

我刚刚编辑了它,因此名称是Test而不是ShowTrafficButton我刚刚编辑了它,因此名称是Test而不是ShowTrafficButton我更改了代码,因此只调用了一次Create和setContentView,但现在我丢失了日志。LogCat在捕获调试日志方面并不稳定。重要的是,您在哪里调用它们?你应该更新你的答案。LogCat怎么不稳定?我已经去掉了第二个“super.onCreate(savedInstanceState);”和“this.setContentView(R.layout.main);”。就LogCat而言,在Emulator上运行代码时,我看不到捕获的任何日志。在我启动应用程序后,它至少会显示一些日志。我试图关闭它并从Eclipse重新启动LogCat,但它不起作用。谢谢你的帮助。我终于看到了日志。通过去掉额外的代码,我现在可以看到onClick日志。我更改了代码,所以onCreate和setContentview只调用了一次,但现在我丢失了日志。LogCat在捕获调试日志方面并不稳定。重要的是,您在哪里调用它们?你应该更新你的答案。LogCat怎么不稳定?我已经去掉了第二个“super.onCreate(savedInstanceState);”和“this.setContentView(R.layout.main);”。就LogCat而言,在Emulator上运行代码时,我看不到捕获的任何日志。在我启动应用程序后,它至少会显示一些日志。我试图关闭它并从Eclipse重新启动LogCat,但它不起作用。谢谢你的帮助。我终于看到了日志。通过去掉额外的代码,我现在可以看到onClick日志。