为了账号安全,请及时绑定邮箱和手机立即绑定

已定义方法(Android 接口)但仍未找到?

已定义方法(Android 接口)但仍未找到?

慕姐4208626 2023-09-13 17:57:28
我遵循Head First的Android开发指南作为参考,并尝试使用cardview实现面条菜肴的recyclerview。我目前正在按照书中的建议将单击功能作为与适配器分开的接口来实现;虽然我现在没有使用片段。一个问题是我定义的 setListener 方法没有被我的 MainActivity 找到。错误是“找不到符号方法 setListener()”。所以,我的方法就像未定义一样。您知道如何解决这个问题吗?这是MainActivity的代码package com.justin.android.foodapp;import androidx.appcompat.app.Apublic class MainActivity extends AppCompatActivity {    private Noodles[] noodlesDataset = Noodles.noodles;    private RecyclerView recyclerView;    private RecyclerView.Adapter mAdapter;    private RecyclerView.LayoutManager layoutManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //Log.i("MainActivity", "Hello World");        // get the recycler view        recyclerView = (RecyclerView) findViewById(R.id.noodleRecycler);        // use a linear layout manager        layoutManager = new LinearLayoutManager(this);        recyclerView.setLayoutManager(layoutManager);        //specify an adapter        mAdapter = new MyAdapter(noodlesDataset);        recyclerView.setAdapter(mAdapter);        LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);        recyclerView.setLayoutManager(layoutManager);        mAdapter.setListener(new MyAdapter.Listener(){            public void onClick(int position) {                Intent intent = new Intent(MainActivity.this, NoodleDetailActivity.class);                intent.putExtra(NoodleDetailActivity.EXTRA_NOODLE_ID, position);                (MainActivity.this).startActivity(intent);            }        });    }}这是我的适配器代码,我在其中尝试定义 setListener 方法
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

替换这个


private RecyclerView.Adapter mAdapter;



public MyAdapter mAdapter; 

并删除多余的东西并更新如下


   private RecyclerView recyclerView;

      public MyAdapter mAdapter;



        @Override

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            //Log.i("MainActivity", "Hello World");


            // get the recycler view

            recyclerView = (RecyclerView) findViewById(R.id.noodleRecycler);



            //specify an adapter

            mAdapter = new MyAdapter(noodlesDataset);

  LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);

            recyclerView.setAdapter(mAdapter);


            recyclerView.setLayoutManager(layoutManager);




查看完整回答
反对 回复 2023-09-13
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号