技术标签: android程序开启时闪退
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
完成作业记事本中,代码无报错,其他功能都无问题,但是点击保存后就会闪退,然后只能卸载重装程序才能再次运行
package cn.itcast.notepad;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import cn.itcast.notepad.database.SQLiteHelper;
import cn.itcast.notepad.utils.DBUtils;
public class RecordActivity extends AppCompatActivity implements View.OnClickListener {
ImageView note_back;
TextView note_time;
EditText content;
ImageView delete;
ImageView note_save;
TextView noteName;
private SQLiteHelper mSQLiteHelper;
private String id;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
note_back = (ImageView)findViewById(R.id.note_back); //后退键
note_time = (TextView)findViewById(R.id.tv_time); //保存记录的时间
content = (EditText)findViewById(R.id.note_content); //记录的内容
delete = (ImageView)findViewById(R.id.delete); //清空的按钮
note_save = (ImageView)findViewById(R.id.note_save); //保存的按钮
noteName = (TextView)findViewById(R.id.note_name); //标题的名称
note_back.setOnClickListener(this);
delete.setOnClickListener(this);
note_save.setOnClickListener(this);
initData();
}
public void initData(){
mSQLiteHelper = new SQLiteHelper(this);
noteName.setText("添加记录");
Intent intent = getIntent();
if (intent!= null){
id = intent.getStringExtra("id");
if (id !=null){
noteName.setText("修改记录");
content.setText(intent.getStringExtra("content"));
note_time.setText(intent.getStringExtra("time"));
note_time.setVisibility(View.VISIBLE);
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.note_back:
finish();
break;
case R.id.delete:
content.setText("");
break;
case R.id.note_save:
String noteContent = content.getText().toString().trim();
if(id!=null){
//修改记录功能
if (noteContent.length()>0){
if (mSQLiteHelper.updateData(id,noteContent, DBUtils.geTIME())) {
showToast("修改成功");
setResult(2);
finish();
}else {
showToast("修改失败");
}
}else {
showToast("修改记录不能为空");
}
}else {
//添加记录功能
if (noteContent.length()>0){
if (mSQLiteHelper.insertData(noteContent, DBUtils.geTIME())) {
showToast("保存成功");
setResult(2);
finish();
}else {
showToast("保存失败");
}
}else {
showToast("保存记录不能为空");
}
}
break;
}
}
public void showToast(String message){
Toast.makeText(RecordActivity.this,message,Toast.LENGTH_LONG).show();
}
}
--------------------------------------------------------------------------------------------
package cn.itcast.notepad;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.List;
import cn.itcast.notepad.adapter.NotepadAdapter;
import cn.itcast.notepad.bean.NotepadBean;
import cn.itcast.notepad.database.SQLiteHelper;
public class NotepadActivity extends AppCompatActivity {
private ListView listView;
private SQLiteHelper mSQLiteHelper;
private List list;
NotepadAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notepad);
listView = findViewById(R.id.listview);
ImageView imageView = findViewById(R.id.add);
initData();
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(NotepadActivity.this,RecordActivity.class);
startActivityForResult(intent,1);
}
});
}
public void initData(){
mSQLiteHelper = new SQLiteHelper(this);
showQueryData();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
NotepadBean notepadBean = list.get(position);
Intent intent = new Intent(NotepadActivity.this,RecordActivity.class);
intent.putExtra("id",notepadBean.getId());
intent.putExtra("content",notepadBean.getNotepadContent());
intent.putExtra("time",notepadBean.getNotepadTime());
NotepadActivity.this.startActivityForResult(intent,1);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> parent, View view, final int position, long id) {
AlertDialog dialog;
AlertDialog.Builder builder = new AlertDialog.Builder(NotepadActivity.this)
.setMessage("是否删除此记录")
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
NotepadBean notepadBean = list.get(position);
if(mSQLiteHelper.deleteData(notepadBean.getId())){
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(NotepadActivity.this,"删除成功",Toast.LENGTH_LONG).show();
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog = builder.create();
dialog.show();
return true;
}
});
}
private void showQueryData(){
if (list!=null){
list.clear();
}
list = mSQLiteHelper.query();
adapter = new NotepadAdapter(this,list);
listView.setAdapter(adapter);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == 2){
showQueryData();
}
}
}
------------------------------------------------------------------------------
系统通用配置1. 软件源ubuntu安装好之后默认是中国的官方源,速度还是不错的。想换的可以在系统管理-软件源里面换,也可以手动修改/etc/apt /source.list文件(请做好备份)。启用"Lucid-partner"源(以后操作需要,务必启用)里 面有Adobe Reader,Flash插件等软件进入“系统-系统管理-软件源-其 他软件”,勾选"Lucid-partner"源就...
任务环境说明:服务器场景:Linux服务器场景操作系统:Linux(版本不详)渗透机环境说明BT5渗透机用户名:root密码:toorKali渗透机用户名:root密码:toorWindows7渗透机用户名:administrator密码:123456靶机19-JY-Linux--1 172.16.102.2501.通过BT5对服务器场景Linux进行TCP同步扫描 (使用工具Nmap,使用参数n,使用必须要使用的参数),并将该操作使用命令中必须要使用的参数作为Flag提交;fla
Redhat Linux 硬盘挂载方法!!! 硬盘挂载操作工作步骤: 1、先查看目前机器上有几块硬盘,查看命令有两种: 命令1:# fdisk –l 命令2:# dmesg | grep sd 其中:fdisk命令说明如下: fdisk命令用途:观察硬盘的实体使用情形与分割硬盘用。 fdisk命令使用方法: 一、在 console 上输入 fdisk -...
基本概念:第一层 服务主密钥 备份服务主密钥backup service master key to file='c:/smk.bak'encryption by password='[email protected]' restore service master key from file='c:/smk.bak'decryption by password='[email protected]'
Hive-空字段赋值,时间类函数,分支函数,字符串拼接,COLLECT_SET(),EXPLODE(),窗口函数
前言提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关。而事务的ACID(即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)可以说涵盖了事务的全部知识点,所以,我们不仅要知道ACID是什么,还要了解ACID背后的实现,只有这样,无论在日常开发还是面试求职,都能无往而不利。为了大家更好的阅读体验,对ACID的深入分析将分为上下两篇。本篇主要围绕ACID中的I,也就
2018TYUT暑期ACM模拟赛(4) Little Boxes HDU - 6225 题意:就是四个很大的数相加,long long 有一种会爆。图个省事。直接用来大数的模板。直接过了-_-#include<iostream>#include<cstring>using namespace std;string sum(string s1,string s2...
通过win+v可以使用历史的复制内容
为了实现阿里九游游戏接入系统的业务高可用,技术人员跳出传统的面向系统的高可用的思路,转而从业务的角度来整体考虑高可用,最终实现了一套立体化的高可用架构,本文逐一展示这套立体化高可用架构的一些具体实践。
FTP服务器是平时应用最为广泛的服务之一。VSFTP是Very Secure FTP的缩写,意指非常安全的FTP服务。VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务。首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有: 1、如何添加FTP用户? 2、如何临时冻结某FTP用户? 3、FTP用户登入
Spring中使用事务出现java.lang.ClassCastException: com.sun.proxy.$Proxy19 cannot be cast to …错误 <!--开启事务注解驱动,并配置事务--> <tx:annotation-driven transaction-manager="事务管理器id" proxy-target-class="true"/> proxy-target-class="true" 添加即可...
1.什么是单点登录?单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。2.常用的认证系统WEBS-SSO(简单编程,基于Cookie,轻量级) 百度百科: 用户在访问页面1的时候进行了登录,但是客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如