weixin_46072760 2021-11-18 22:47 采纳率: 84.3%
浏览 16
已结题

安卓sqlit连接数据库 出现意外

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
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);

    }
}


运行结果及报错内容

img

img

img

数据库

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • pumpkin的玄学 2021-11-19 08:30
    关注

    img


    打断点 看一下 是不是在这一步的时候 img还是为null
    findviewbyid返回了null,id没有找到

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月18日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度