bundle putextra

ttisahbt  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(234)

这个问题在这里已经有答案了

什么是nullpointerexception,如何修复它(12个答案)
四年前关门了。
所需的输出是,在第一个活动中,有一个标题、imageview和3个按钮。单击图像时,新活动将开始,其中显示了相同的详细信息,但这次只显示了该帖子(稍后还会显示评论)。所以我需要传递标题和图片的细节使用捆绑,但我的应用程序崩溃。
customadapter.java代码:

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;
}
}

post.java代码:(下一个将在image click上打开的activity类)

package com.example.swapsha96.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.TextView;

public class Post extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_post);

    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    String titleValue = extras.getString("title");
    Integer postValue = extras.getInt("post");

    TextView title = (TextView)findViewById(R.id.title);
    ImageView post = (ImageView)findViewById(R.id.post);
    title.setText(titleValue);
    post.setImageResource(postValue);
}

}

活动\u 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>

它抛出的错误是title.settext(titlevalue);在第二个代码中是空对象引用,因此无法启动活动。

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
wi3ka0sx

wi3ka0sx1#

你还没有申报 TextView 带id title 在你身上 layout . 所以你找不到 textview 因此 title 对象是 null .
添加 TextView 您的布局如下:

<TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" "/>

相关问题