【问题标题】:error on setOnClickListenersetOnClickListener 上的错误
【发布时间】:2013-01-25 01:20:10
【问题描述】:

我在 btn.setOnClickListener(this) 上不断收到此错误。我有与以前相同的代码,但是直到几分钟前我打开我的 Eclipse,我才得到这个错误。尽快提供帮助将非常感谢。

package com.example.bmisummative;

import android.app.Activity;
import android.content.DialogInterface;
import android.view.View.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class weightloss extends Activity {
    Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.weightloss);
        btn = (Button) findViewById(R.id.homeButton);
        btn.setOnClickListener(this);
    }

        public void onClick(View v) {
        if (v.getId() == R.id.homeButton) {
            startActivity(new Intent(this, MainActivity.class));
        }

    }
}

【问题讨论】:

    标签: java android android-layout android-widget onclicklistener


    【解决方案1】:

    您没有实现OnClickListener。您需要这样做才能像这样设置您的onClickListener

     btn.setOnClickListener(this);
    

    你需要这样做:

    public class weightloss extends Activity implements OnClickListener {...}
    

    【讨论】:

      【解决方案2】:

      你应该实现OnClickListener

      public class weightloss extends Activity
      implements OnClickListener
      {
         @Override
         public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.weightloss);
            btn = (Button) findViewById(R.id.homeButton);
            btn.setOnClickListener(this);
         }
      
         public void onClick (View v)
         {
            // Button tap detected! Do stuffs!
         }
      
      }
      

      【讨论】:

      • public abstract void? onClick() 此处不应为 abstract
      【解决方案3】:

      你不见了implements OnClickListener

      public class weightloss extends Activity implements OnClickListener {}
      

      还有另一种不用添加implements OnClickListener的简洁方法:

      btn = (Button) findViewById(R.id.homeButton);
      btn.setOnClickListener(new OnClickListener() {
      
          @Override
          public void onClick(View v) {
                 startActivity(new Intent(this, MainActivity.class));
      
           }
      });
      

      我更喜欢后者,因为它在处理大量按钮时更容易阅读。

      【讨论】:

        【解决方案4】:

        随便写

        public class weightloss extends Activity implements OnclickListner 
        

        【讨论】:

        • 你重复了一年多以前的答案......并且拼写错误。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-07
        • 1970-01-01
        • 2011-04-02
        • 2013-11-25
        • 1970-01-01
        相关资源
        最近更新 更多