implements onClickListener 无效?

implements onClickListener 无效?

package com.example.ui_menudemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Button bt_context,bt_popup;

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


        bt_context = this.<Button>findViewById(R.id.bt_context);
        bt_popup = this.<Button>findViewById(R.id.bt_popup);
        registerForContextMenu(bt_context);
        bt_popup.setOnClickListener();//设置监听

    }

    class ButtonListener implements onClickListener{

    }

    //------------------------------------------注册后使用context--------------------------------------------------
    //加载context对应的资源
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.content,menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.savec:
                Toast.makeText(MainActivity.this,"保存",Toast.LENGTH_SHORT).show();
                break;
            case R.id.createc:
                Toast.makeText(MainActivity.this,"新建",Toast.LENGTH_SHORT).show();
                break;
            case R.id.exitc:
                Toast.makeText(MainActivity.this,"退出",Toast.LENGTH_SHORT).show();
                finish();
                break;
        }
        return super.onContextItemSelected(item);
    }
    //------------------------------------------全局操作,因此不需要加载--------------------------------------------------
    //创建optionsMenu方法
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //加载当前Menu资源
        getMenuInflater().inflate(R.menu.optionmenu,menu);
        return true;
    }
    //对选项菜单进行操作
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.create:
                Toast.makeText(MainActivity.this,"新建",Toast.LENGTH_SHORT).show();
                break;
            case R.id.save:
                Toast.makeText(MainActivity.this,"保存",Toast.LENGTH_SHORT).show();
                break;
            case R.id.exit:
                Toast.makeText(MainActivity.this,"退出",Toast.LENGTH_SHORT).show();
                finish();
                break;
            case R.id.z1:
                Toast.makeText(MainActivity.this,"操作1",Toast.LENGTH_SHORT).show();
                break;
            case R.id.z2:
                Toast.makeText(MainActivity.this,"操作2",Toast.LENGTH_SHORT).show();

                break;
            case R.id.z3:
                Toast.makeText(MainActivity.this,"操作3",Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}



老师好, 我在修改本课中的第三项popup弹出菜单,为什么我按照之前的思路,单独建立一个内部类的方式设置监听,提示不能使用接口:onClickListener

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
class ButtonListener implements View.OnClickListener{

    @Override
    public void onClick(View view) {

    }
}

改成这样的implements View.OnClickListener。祝:学习愉快

  • 飞翔吧吧 提问者 #1
    我想问的是为什么呢? 能给到原因吗?
    2018-06-21 15:07:40
  • 好帮手慕雪 回复 提问者 飞翔吧吧 #2
    你单词写错了onClickListener。OnClickListener首字母要大写
    2018-06-21 15:24:11
  • 飞翔吧吧 提问者 回复 好帮手慕雪 #3
    我想问的是为什么 前面要加入View.OnClickListener ? 为啥不能直接OnClickListener
    2018-06-21 15:33:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师