空指针问题:Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)

在Android应用开发中遇到一个空指针异常,具体为尝试调用TextView的setText方法时,对象引用为空。异常发生在 Memo1.getView() 方法中,导致应用崩溃。错误堆栈涉及ListView的测量和布局过程。问题可能源于未正确初始化的TextView对象。

做一晚上了,有没有大佬帮帮我,万分感谢
报错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!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值