android: OnClickListener cannot be resolved to a type

众所周知,我们在android开发中为Button实现触发事件有两种基本的实现。一种为接口匿名类实现,这种方法直接方便但是会造成代码的冗余;还有一种方法是直接类型与new一个接口对象,在里面实现方法。如下:

import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View;
import android.view.View.OnClickListener;


public class MainActivity extends Activity {


private Button btlogin=null;
private Button btassert=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btlogin=(Button)findViewById(R.id.btLogin);
btassert=(Button)findViewById(R.id.btAsset);
btlogin.setOnClickListener(listener);
btassert.setOnClickListener(listener);
}


private OnClickListener listener = new View.OnClickListener(){
 
        @Override
        public void onClick(View view) {
             Button button=(Button)view;
             switch (button.getId()) {
case R.id.btLogin:
Toast.makeText(MainActivity.this, "您登陆了", Toast.LENGTH_LONG).show();
break;
case R.id.btAsset:
Toast.makeText(MainActivity.this, "重置OK" , Toast.LENGTH_SHORT).show();
break;


}
        }
    };

在原来的SDK下,private OnClickListener listener=new OnClickListener(){.......};便可以利用这种方法。但是新的SDK这样写会报编译错误。

开始的时候我以为是导入类错误,因为有两个OnClickListener:android.content.DialogInterface.OnClickListener和import android.view.View.OnClickListener;

恩,就是这样,还是老问题,注意导入包的正确性,我们需要import android.view.View.OnClickListener;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值