简体   繁体   English

在普通类的onClickListener中从Intent开始的Intent活动返回错误

[英]android starting Activity from Intent in onClickListener in common class returns error

I have a navigation button that I use in each class and want to set its onClickListener in the class that contains all the common code. 我有一个导航按钮,我在每个类中使用,并希望在包含所有公共代码的类中设置其onClickListener。 However I get a 但是我得到了一个

"The method startActivity(Intent) is undefined for the type new View.OnClickListener(){}"

error in startActivity(i). startActivity(i)中的错误。

The relevant code is: 相关代码是:

    public static void initiateNavigationButton(Context context, View view, int layoutResource) {
    final Context classContext = context;

    LayoutInflater inflater = LayoutInflater.from(classContext);
    View layout = inflater.inflate(layoutResource, (ViewGroup) view);

    Button navigationButton = (Button) layout.findViewById(R.id.navigation_button);

    navigationButton.setOnClickListener(new View.OnClickListener() { 
        @Override
        public void onClick(View v) { 
            Intent i = new Intent(classContext, HomeActivity.class);

            startActivity(i); 
        }
    });
    }

You are inside an inner class that implements the View.OnClickListener . 您位于实现View.OnClickListener的内部类中。

That class does not have a startActivity method that you could call, so you need to wrap it in order to access the parent activity's method. 该类没有可以调用的startActivity方法,因此您需要将其包装以访问父活动的方法。 Assuming that your class' name is 'MyActivity', change the line startActivity(i); 假设您的班级名称是“MyActivity”,请更改行startActivity(i); to

MyActivity.this.startActivity(i);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM