找不到符号类

时间:2018-04-29 19:45:42

标签: android

在我的android主要活动中,我正在尝试创建一个setOnClickListener函数,我只是传递按钮名称和活动类,以减少代码行但得到错误。

错误: 找不到符号类className

public void startActivity(ImageButton buttonName, Class className){

            buttonName.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(MainActivity.this, className.class);
                    startActivity(intent); // startActivity allow you to move
                }
            });
        }

1 个答案:

答案 0 :(得分:0)

您不需要额外的.class,因为它已经存在:)

Intent intent = new Intent(MainActivity.this, className);

但是,您不应使用原始类型Class。最好至少用通配符Class<?>替换它。但它仍然是一个糟糕的解决方案,因为你可以调用startActivity(image_button, Object.class),它将在运行时编译并抛出错误。我建议你使用这个功能:

public void startActivity(@NonNull View view, @NonNull Class<? extends Activity> activity){
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, activity);
            startActivity(intent); // startActivity allow you to move
        }
    });
}