在我的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
}
});
}
答案 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
}
});
}