问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
package com.example.navigation2.ui.recycleview;
import androidx.lifecycle.ViewModelProviders;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.navigation2.R;
import com.example.navigation2.util.OpenHelper;
import com.google.android.material.appbar.CollapsingToolbarLayout;
public class ItemDetailFragment extends Fragment {
private Button btn_delete;
private String title;
public static ItemDetailFragment newInstance() {
return new ItemDetailFragment();
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.item_detail_fragment, container, false);
title=getArguments().getString("title");
OpenHelper dbOpenHelper = new OpenHelper(getActivity());
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from news where title=?",
new String[] { title });
cursor.moveToFirst();
String info = cursor.getString(cursor.getColumnIndex("info"));
byte[] b = cursor.getBlob(cursor.getColumnIndex("img"));
ImageView img = (ImageView)view.findViewById(R.id.img);
if (b != null && b.length > 0) {
Bitmap image = BitmapFactory.decodeByteArray(b, 0, b.length);
img.setImageBitmap(image);
} else {
img.setImageResource(R.drawable.header);
}
CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) view.findViewById(R.id.toolbar_layout);
collapsingToolbar.setTitle(title);
TextView tvbookname=(TextView)view.findViewById(R.id.title);
tvbookname.setText(title);
TextView tvpublishertime= view.findViewById(R.id.info);
tvpublishertime.setText(info);
//删除功能
Button del_book= (Button) view.findViewById(R.id.btn_delete);
del_book.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OpenHelper dbOpenHelper = new OpenHelper(getActivity());
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
db.execSQL("delete from book where isbn=?", new String[] { title });
db.close();
Toast.makeText(getActivity(), "删除数据成功!", Toast.LENGTH_LONG).show();
NavController navController= Navigation.findNavController(getActivity(),R.id.nav_host_fragment);
navController.navigate(R.id.nav_home);
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ItemDetailViewModel mViewModel = ViewModelProviders.of(this).get(ItemDetailViewModel.class);
// TODO: Use the ViewModel
assert getArguments() != null;
int img=getArguments().getInt("img");
String title=getArguments().getString("title");
String info =getArguments().getString("info");
getActivity().findViewById(R.id.ivImage).setBackgroundResource(img);
TextView txtTitle= getActivity().findViewById(R.id.item_info1);
TextView txtInfo= getActivity().findViewById(R.id.item_info2);
txtTitle.setText(title);
txtInfo.setText(info);
}
}
运行结果及报错内容
数据库