记事本APP崩溃。。。(新手)

青鸟丶 2017-07-20 11:19:45
用的android studio
就是 两个Activity之间的跳转,
点击新建记事 就崩溃了
错误信息:E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.administrator.jishiben, PID: 5078
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.administrator.jishiben/com.example.administrator.jishiben.Main2Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

活动1部分代码:

public class MainActivity extends Activity implements OnItemClickListener, OnItemLongClickListener {
private Context mContext;
private ListView listview;
private SimpleAdapter simp_adapter;
private List<Map<String, Object>> dataList;
private Button addNote;
private TextView tv_content;
private NotesDB DB;
private SQLiteDatabase dbread;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_content = (TextView) findViewById(R.id.tv_content);
listview = (ListView) findViewById(R.id.listview);
dataList = new ArrayList<Map<String, Object>>();

addNote = (Button) findViewById(R.id.btn_editnote);
mContext = this;
addNote.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Main2Activity.ENTER_STATE = 0;
Intent intent = new Intent(mContext, Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putString("info", "");
intent.putExtras(bundle);
startActivityForResult(intent, 1);
}
});
DB = new NotesDB(this);
dbread = DB.getReadableDatabase();
// 清空数据库中表的内容
//dbread.execSQL("delete from note");
RefreshNotesList();
listview.setOnItemClickListener(this);
listview.setOnItemLongClickListener(this);

}
public void RefreshNotesList() {

int size = dataList.size();
if (size > 0) {
dataList.removeAll(dataList);
simp_adapter.notifyDataSetChanged();
listview.setAdapter(simp_adapter);
}
simp_adapter = new SimpleAdapter(this, getData(), R.layout.jishi,
new String[] { "tv_content", "tv_date" }, new int[] {
R.id.tv_content, R.id.tv_date });
listview.setAdapter(simp_adapter);
}

private List<Map<String, Object>> getData() {

Cursor cursor = dbread.query("note", null, "content!=\"\"", null, null,
null, null);

while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("content"));
String date = cursor.getString(cursor.getColumnIndex("date"));
Map<String, Object> map = new HashMap<String, Object>();
map.put("tv_content", name);
map.put("tv_date", date);
dataList.add(map);
}
cursor.close();
return dataList;

}

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Main2Activity.ENTER_STATE = 1;
// Log.d("arg2", arg2 + "");
// TextView
// content=(TextView)listview.getChildAt(arg2).findViewById(R.id.tv_content);
// String content1=content.toString();
String content = listview.getItemAtPosition(arg2) + "";
String content1 = content.substring(content.indexOf("=") + 1,
content.indexOf(","));
Log.d("CONTENT", content1);
Cursor c = dbread.query("note", null,
"content=" + "'" + content1 + "'", null, null, null, null);
while (c.moveToNext()) {
String No = c.getString(c.getColumnIndex("_id"));
Log.d("TEXT", No);
// Intent intent = new Intent(mContext, noteEdit.class);
// intent.putExtra("data", text);
// setResult(4, intent);
// // intent.putExtra("data",text);
// startActivityForResult(intent, 3);
Intent myIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("info", content1);
Main2Activity.id = Integer.parseInt(No);
myIntent.putExtras(bundle);
myIntent.setClass(MainActivity.this,Main2Activity.class);
startActivityForResult(myIntent, 1);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == 2) {
RefreshNotesList();
}
}
}


活动2代码:
package com.example.administrator.jishiben;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Main2Activity extends Activity {
private TextView tv_date;
private EditText et_content;
private Button btn_ok;
private Button btn_cancel;
private NotesDB DB;
private SQLiteDatabase dbread;
public static int ENTER_STATE = 0;
public static String last_content;
public static int id;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 设置无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main2);

tv_date = (TextView) findViewById(R.id.tv_date);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String dateString = sdf.format(date);
tv_date.setText(dateString);

et_content = (EditText) findViewById(R.id.et_content);
// 设置软键盘自动弹出
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

DB = new NotesDB(this);
dbread = DB.getReadableDatabase();

Bundle myBundle = this.getIntent().getExtras();
last_content = myBundle.getString("info");
Log.d("LAST_CONTENT", last_content);
et_content.setText(last_content);
// 确认按钮的点击事件
btn_ok = (Button) findViewById(R.id.btn_ok);
btn_ok.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// 获取日志内容
String content = et_content.getText().toString();
Log.d("LOG1", content);
// 获取写日志时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateNum = sdf.format(date);
String sql;
String sql_count = "SELECT COUNT(*) FROM note";
SQLiteStatement statement = dbread.compileStatement(sql_count);
long count = statement.simpleQueryForLong();
Log.d("COUNT", count + "");
Log.d("ENTER_STATE", ENTER_STATE + "");
// 添加一个新的日志
if (ENTER_STATE == 0) {
if (!content.equals("")) {
sql = "insert into " + NotesDB.TABLE_NAME_NOTES
+ " values(" + count + "," + "'" + content
+ "'" + "," + "'" + dateNum + "')";
Log.d("LOG", sql);
dbread.execSQL(sql);
}
}
// 查看并修改一个已有的日志
else {
Log.d("执行命令", "执行了该函数");
String updatesql = "update note set content='"
+ content + "' where _id=" + id;
dbread.execSQL(updatesql);
// et_content.setText(last_content);
}
Intent data = new Intent();
setResult(2, data);
finish();
}
});
btn_cancel = (Button) findViewById(R.id.btn_cancel);
btn_cancel.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
finish();
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// if (requestCode == 3 && resultCode == 4) {
// last_content=data.getStringExtra("data");
// Log.d("LAST_STRAING", last_content+"gvg");
// }
}
}

...全文
626 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
r00_a2lBUR 2017-11-07
  • 打赏
  • 举报
回复
楼主,你这个帖子不结吗?影响你的结帖率哦。
smile_邝野 2017-08-12
  • 打赏
  • 举报
回复
看看main2activity是否在清单文件中注册,
r00_a2lBUR 2017-08-12
  • 打赏
  • 举报
回复
可能你有Acitvity没有注册,跳转实例:http://download.csdn.net/detail/r00_a2lbur/9854871
qq_39770487 2017-08-08
  • 打赏
  • 举报
回复
看看注册问题把
chickenmay 2017-07-26
  • 打赏
  • 举报
回复
1 看看有没有注册 2.TextView.setText(java.lang.CharSequence) 看看textview是否为空 设置的内容是否为空
ink_s 2017-07-20
  • 打赏
  • 举报
回复
Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
tianzhifengxian 2017-07-20
  • 打赏
  • 举报
回复
你看下 你的资源文件引用的对不对。看日志 是setText的对象是一个空的引发的空指针 也就是说 textView.setText(); textView 这个东西空指针
r00_a2lBUR 2017-07-20
  • 打赏
  • 举报
回复
权限文件里有没有注册Activity?
ganshenml 2017-07-20
  • 打赏
  • 举报
回复
last_content = myBundle.getString("info"); ================================== 确认下你的这个值是否不为空

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧