做一晚上了,有没有大佬帮帮我,万分感谢
报错E/AndroidRuntime: FATAL EXCEPTION: main
Process: main_activity.diary, PID: 11800
java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference
at main_activity.diary.Memo1.getView(Memo.java:87)atandroid.widget.AbsListView.obtainView(AbsListView.java:2360)atandroid.widget.ListView.measureHeightOfChildren(ListView.java:1326)atandroid.widget.ListView.onMeasure(ListView.java:1233)atandroid.view.View.measure(View.java:19731)atandroid.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)atandroid.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.FrameLayout.onMeasure(FrameLayout.java:185)atandroid.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:389)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.FrameLayout.onMeasure(FrameLayout.java:185)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)atandroid.widget.LinearLayout.measureVertical(LinearLayout.java:758)atandroid.widget.LinearLayout.onMeasure(LinearLayout.java:640)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.FrameLayout.onMeasure(FrameLayout.java:185)atcom.android.internal.policy.DecorView.onMeasure(DecorView.java:687)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)atandroid.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)atandroid.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)atandroid.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)atandroid.view.ViewRootImpl1.getView(Memo.java:87)
at android.widget.AbsListView.obtainView(AbsListView.java:2360)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1326)
at android.widget.ListView.onMeasure(ListView.java:1233)
at android.view.View.measure(View.java:19731)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:19731)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:19731)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:389)
at android.view.View.measure(View.java:19731)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19731)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19731)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687)
at android.view.View.measure(View.java:19731)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl1.getView(Memo.java:87)atandroid.widget.AbsListView.obtainView(AbsListView.java:2360)atandroid.widget.ListView.measureHeightOfChildren(ListView.java:1326)atandroid.widget.ListView.onMeasure(ListView.java:1233)atandroid.view.View.measure(View.java:19731)atandroid.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)atandroid.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.FrameLayout.onMeasure(FrameLayout.java:185)atandroid.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:389)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.FrameLayout.onMeasure(FrameLayout.java:185)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)atandroid.widget.LinearLayout.measureVertical(LinearLayout.java:758)atandroid.widget.LinearLayout.onMeasure(LinearLayout.java:640)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)atandroid.widget.FrameLayout.onMeasure(FrameLayout.java:185)atcom.android.internal.policy.DecorView.onMeasure(DecorView.java:687)atandroid.view.View.measure(View.java:19731)atandroid.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)atandroid.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)atandroid.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)atandroid.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)atandroid.view.ViewRootImplTraversalRunnable.run(ViewRootImpl.java:6301)
at android.view.ChoreographerCallbackRecord.run(Choreographer.java:871)atandroid.view.Choreographer.doCallbacks(Choreographer.java:683)atandroid.view.Choreographer.doFrame(Choreographer.java:619)atandroid.view.ChoreographerCallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.ChoreographerCallbackRecord.run(Choreographer.java:871)atandroid.view.Choreographer.doCallbacks(Choreographer.java:683)atandroid.view.Choreographer.doFrame(Choreographer.java:619)atandroid.view.ChoreographerFrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
.java文件:
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
public class Memo extends AppCompatActivity {
private TextView welcome;
private ImageButton btn_add;
private ListView listView;
private DBHelper dbHelper;
private ArrayList<Memo_info> MemoList;
SQLiteDatabase db;
private int id;
private String name;
private String strid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_add=(ImageButton)findViewById(R.id.btn_add);
listView=(ListView)findViewById(R.id.lv_memoList);
dbHelper=new DBHelper(this);
db=dbHelper.getReadableDatabase();
welcome=(TextView)findViewById(R.id.welcome_word);
final Intent intent=getIntent();
MemoList=new ArrayList<>();
id=Integer.parseInt(intent.getStringExtra(“id”));
String sql_name=“select username from tb_user where user_id=?”;
Cursor c=db.rawQuery(sql_name,new String[]{Integer.toString(id)});
while(c.moveToNext()){
name=c.getString(c.getColumnIndex(“username”));
}
strid=Integer.toString(id);
welcome.setText(name+“欢迎你!”);
String sql=“select * from tb_memo where userID=?”;
Cursor cursor = db.rawQuery(sql,new String[]{Integer.toString(id)});
while(cursor.moveToNext()){
if(id==cursor.getInt(2)){
String title=cursor.getString(cursor.getColumnIndex(“title”));
String createDate=cursor.getString(cursor.getColumnIndex(“createDate”));
int id=cursor.getInt(0);
Memo_info memo=new Memo_info(title,createDate,id);
System.out.println(“title:”+title+“createDate:”+createDate+“id:”+id);
MemoList.add(memo);
}
}
listView.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return MemoList.size();
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
View view;
if (convertView==null){
view = View.inflate(getBaseContext(),R.layout.list_item_memo,null);
}else{
view = convertView;
}
Memo_info memo=MemoList.get(i);
TextView title=(TextView)view.findViewById(R.id.title);
TextView content=(TextView)view.findViewById(R.id.content);
TextView getsqlId=(TextView)view.findViewById(R.id.getsqlId);
TextView createDate=(TextView)view.findViewById(R.id.noticeDate);
title.setText(memo.getTitle());
content.setText(memo.getContent());
createDate.setText(memo.getCreateDate());
getsqlId.setText(Integer.toString(memo.getId()));
return view;
}
});
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent1=new Intent(Memo.this,SaveMemo.class);
intent1.putExtra("userID",strid);
startActivity(intent1);
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
TextView view1=(TextView)view.findViewById(R.id.getsqlId);
String memoid=view1.getText().toString();
Intent intent2=new Intent(Memo.this,showmemo.class);
intent2.putExtra("memoid",memoid);
intent2.putExtra("user_id",strid);
startActivity(intent2);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
Button btn_del=(Button)view.findViewById(R.id.btn_del);
btn_del.setVisibility(View.VISIBLE);
TextView view1=(TextView)view.findViewById(R.id.getsqlId);
final String memoid=view1.getText().toString();
btn_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
db=dbHelper.getWritableDatabase();
db.delete("tb_memo","id=?",new String[]{memoid});
Intent intent3=new Intent(Memo.this,Memo.class);
System.out.println("调用删除方法");
intent3.putExtra("id",strid);
startActivity(intent3);
}
});
return true;
}
});
}
}
.xml文件
</ListView>
<Button
android:id="@+id/btn_del"
android:layout_width="60dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:text="删除"
android:visibility="gone"
android:textColor="@android:color/white"
android:background="@android:color/holo_red_dark"
android:textSize="16sp"
android:layout_marginTop="5dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_add"
android:layout_alignLeft="@+id/content"
android:layout_alignStart="@+id/content" />
这是在做一个记事本,一开始是没问题的,写入数据保存后就闪退了,后面一到跳转到另一个activity时就直接闪退了。这到底怎么回事啊,之前也是报空指针我给解决了,可是这次报的是at main_activity.diary.Memo$1.getView(Memo.java:87)直接给我整懵了,它指示位置代码为title.setText(memo.getTitle()); 布局也没错的感觉啊,现在很无解。 help!
在Android应用开发中遇到一个空指针异常,具体为尝试调用TextView的setText方法时,对象引用为空。异常发生在 Memo1.getView() 方法中,导致应用崩溃。错误堆栈涉及ListView的测量和布局过程。问题可能源于未正确初始化的TextView对象。

5692

被折叠的 条评论
为什么被折叠?



