添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I am trying to call getActivity() in the OnItemClickListener:

class ViewTest{ //called in a fragment
setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int p, long i) {
                ((MainActivity) getActivity()).makeResultsbarVisible();

In the fragment, the class is instantiated as:

ViewTest editTest = new ViewTest(this);

But I get an error that I cannot fix:

The method getActivity() is undefined for the type new AdapterView.OnItemClickListener(){}

How can I call getActivity inside onItemClick()? Thanks.

can you post your outer(main) class declaration and inner class declaration? I mean is your inner class is static? – Gopal Gopi Dec 12, 2013 at 10:30 Great solution! What exactly gives me MainActivity.this when called from Listener inside MainActivity class, current instance of MainActivity?? – patryk Nov 28, 2017 at 23:35

Use Class_name.this or define a Context variable. and then call your makeResultsbarVisible() by using Context variable,

Like,

Context c = this;
c.makeResultsbarVisible();
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.