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日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题