【问题标题】:getActivity in ActivityActivity中的getActivity
【发布时间】:2017-05-06 20:19:03
【问题描述】:

我在 Activity 中使用 getActivity() 时遇到问题。它说无法解析方法 getActivity()。我正在使用它在 recyclerView 中进行 onClick。

这是我的代码

 mRecyclerView.setAdapter(mAdapter);
 mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), this));

我应该用什么来改变 getActivity?提前致谢

【问题讨论】:

    标签: android android-recyclerview onclicklistener


    【解决方案1】:

    您已经在Activity 中声明了您的代码。因此,您可以简单地使用this 来引用您所在的Activity

    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, this));
    

    【讨论】:

      【解决方案2】:

      改成

      this

      this 是对你所在的类的引用,例如 MainActivity.this

      【讨论】:

        【解决方案3】:

        我忘了实现recyclerclicklistener。在我实现方法并改变之后

        getActivity
        

        this
        

        效果很好

        extends AppCompatActivity implements RecyclerItemClickListener.OnItemClickListener
        

        【讨论】:

          【解决方案4】:

          你可以像这样传递参数:

          mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, mRecyclerView));
          

          或者有关详细信息,您可以参考此博格:- Android - RecyclerView: Implementing single.

          【讨论】:

            【解决方案5】:

            所有提到的答案都是正确的。但是,有时 'this' 不能被引用为您的 Activity ,主要是当我们尝试从以下回调方法之一中传递它时:

            view.setOnClickListener(v->showToast(this));
            

            在这种情况下,使用类的全名传递活动,如下所示:

            view.setOnClickListener(v->showToast(Sample.this));
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-01-24
              • 1970-01-01
              • 1970-01-01
              • 2018-12-08
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多