尝试调用虚拟方法';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;在空对象引用上-Bundle putExtra
需要的输出是,在第一个活动中,有一个标题、imageview和3个按钮。单击图像时,新活动开始,其中显示相同的详细信息,但这次仅显示该帖子(稍后与评论一起显示)。因此,我需要使用bundle传递标题和图像详细信息,但我的应用程序崩溃了 CustomAdapter.java代码:尝试调用虚拟方法';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;在空对象引用上-Bundle putExtra,java,android,android-studio,Java,Android,Android Studio,需要的输出是,在第一个活动中,有一个标题、imageview和3个按钮。单击图像时,新活动开始,其中显示相同的详细信息,但这次仅显示该帖子(稍后与评论一起显示)。因此,我需要使用bundle传递标题和图像详细信息,但我的应用程序崩溃了 CustomAdapter.java代码: package com.example.swapsha96.myapplication; import android.content.Context; import android.content.Intent; i
package com.example.swapsha96.myapplication;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
class CustomAdapter extends ArrayAdapter<String> {
private final String[] itemname;
private final Integer[] imgid;
private final Context context;
public CustomAdapter(Context context, String[] resource, Integer[] imgid) {
super(context, R.layout.postcard, resource);
this.itemname=resource;
this.imgid=imgid;
this.context = context;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
View view = layoutInflater.inflate(R.layout.postcard, parent, false);
TextView title = (TextView)view.findViewById(R.id.title);
ImageView post = (ImageView)view.findViewById(R.id.post);
Button plus1 = (Button)view.findViewById(R.id.plus1);
Button share = (Button)view.findViewById(R.id.share);
Button comment = (Button)view.findViewById(R.id.comment);
title.setText(itemname[position]);
post.setImageResource(imgid[position]);
post.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(parent.getContext(), Post.class);
Bundle extras = new Bundle();
extras.putString("title",itemname[position]);
extras.putInt("post", imgid[position]);
intent.putExtras(extras);
parent.getContext().startActivity(intent);
}
});
return view;
}
}
activity_post.xml post:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:id="@+id/postcard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.example.swapsha96.myapplication.Post"
android:background="#FFFFFF"
android:layout_margin="2dp"
android:adjustViewBounds="true">
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myCoordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.v4.widget.NestedScrollView
android:id="@+id/myScrollingContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
android:fillViewport="true">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_gravity="center_horizontal"
android:divider="@android:color/transparent"
android:dividerHeight="2dp" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
您尚未在
布局中声明任何id为标题的文本视图
。因此,您无法找到textview
,因此title
对象是null
将TextView
添加到布局中,如下所示:
<TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" "/>
您还可以添加活动\u post
xml吗?这一行似乎是问题所在->TextView title=(TextView)findViewById(R.id.title)代码>因为它返回null。请用XML?我想问题出在错误的R.id.title
尝试更改TextView title的id。简单问题。添加
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.swapsha96.myapplication/com.example.swapsha96.myapplication.Post}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
<TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" "/>