安卓:如何在OnItemClickListener()中调用getActivity()?

10

我正在尝试在OnItemClickListener中调用getActivity():

class ViewTest{ //called in a fragment
setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int p, long i) {
                ((MainActivity) getActivity()).makeResultsbarVisible();
...
            }

        });
在该片段中,该类被实例化为:
ViewTest editTest = new ViewTest(this);

但是我遇到了一个无法修复的错误:

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

我该如何在onItemClick()函数中调用getActivity()方法?谢谢。


请发布您的完整类代码(如果可能)。您在使用Fragment吗? - Gopal Gopi
这是一个活动还是一个片段? - rahulritesh
它是在一个片段中实例化的类。 - user2212461
你能否贴出你的外部(main)类声明和内部类声明?我的意思是你的内部类是静态的吗? - Gopal Gopi
你需要在你的问题中添加更多信息才能获得帮助... - Gopal Gopi
ViewTest类是你的Fragment类的内部类吗? - Gopal Gopi
2个回答

34

你只能在一个 Fragment 类或其子类中使用 getActivity。如果你的 onItemClickListener 在一个 Activity 中,使用 MainActivity.this


很棒的解决方案!当在MainActivity类内部的Listener中调用时,MainActivity.this确切地给了我什么?是MainActivity类的当前实例吗? - patryk

0
使用 Class_name.this 或定义一个 Context 变量。然后通过使用 Context 变量调用你的 makeResultsbarVisible()。 例如,
Context c = this;

c.makeResultsbarVisible();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接