Java 错误:不兼容的类型:无法将MainFragment转换为活动
Java类“MainFragment” 我的错误是:Java 错误:不兼容的类型:无法将MainFragment转换为活动,java,android,android-sqlite,Java,Android,Android Sqlite,Java类“MainFragment” 我的错误是: C:\Users\tibim\AndroidStudioProjects\licenta23\app\src\main\java\com\example\licenta23\MainFragment.java:130: error: incompatible types: MainFragment cannot be converted to Activity MainFragment.this, 首
C:\Users\tibim\AndroidStudioProjects\licenta23\app\src\main\java\com\example\licenta23\MainFragment.java:130: error: incompatible types: MainFragment cannot be converted to Activity
MainFragment.this,
首先,像这样更改构造函数助手(删除MainFragment并设置上下文): 下一步,在你的片段中,像这样对活动进行特殊化:
private AppCompatActivity activity;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof AppCompatActivity) {
activity = (AppCompatActivity) context;
}
}
下一步更改您的帮助者并单击Listener以获得权限:
//...
sqLiteHelper = new SQLiteHelper(activity, "CarDB.sqlite", null, 1);
//...
btnChoose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(
//this change
activity,
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_CODE_GALLERY
);
}
});
它很管用,谢谢!但是,当我点击“选择照片”按钮时,不要让我进入电话库。固定代码格式固定大写
public SQLiteHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
private AppCompatActivity activity;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof AppCompatActivity) {
activity = (AppCompatActivity) context;
}
}
//...
sqLiteHelper = new SQLiteHelper(activity, "CarDB.sqlite", null, 1);
//...
btnChoose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(
//this change
activity,
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_CODE_GALLERY
);
}
});