在执行集合文本的活动中获得强制关闭错误



这是我得到的错误。您可以在下面看到受此会话影响的所有代码。我把意图放在哪里,从哪里得到,所涉及的课程和参数。

    11-30 20:37:32.870: E/AndroidRuntime(809): FATAL EXCEPTION: main
    11-30 20:37:32.870: E/AndroidRuntime(809): java.lang.RuntimeException: Unable to start activity ComponentInfo{kfc.project/kfc.project.productdetail}: java.lang.NullPointerException
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.os.Handler.dispatchMessage(Handler.java:99)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.os.Looper.loop(Looper.java:123)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.ActivityThread.main(ActivityThread.java:3683)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at java.lang.reflect.Method.invokeNative(Native Method)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at java.lang.reflect.Method.invoke(Method.java:507)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at dalvik.system.NativeStart.main(Native Method)
    11-30 20:37:32.870: E/AndroidRuntime(809): Caused by: java.lang.NullPointerException
    11-30 20:37:32.870: E/AndroidRuntime(809):  at kfc.project.productdetail.onCreate(productdetail.java:19)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    11-30 20:37:32.870: E/AndroidRuntime(809):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    11-30 20:37:32.870: E/AndroidRuntime(809):  ... 11 more
This is the code of the java file

    package kfc.project;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.EditText;
    import android.widget.TextView;
    public class productdetail extends Activity{
        @Override
        protected void onCreate(Bundle bundle) {
            // TODO Auto-generated method stub
            super.onCreate(bundle);
            setContentView(R.layout.productdetail);
            Bundle extras = getIntent().getExtras();
            String name = extras.getString("name");
            if (name != null) {
                TextView text1 = (TextView) findViewById(R.id.servingsize);
                text1.setText(name);
            }
            /*
            Intent intent = getIntent();
            String str = intent.getStringExtra("name");*/
        }


    }
This is the code for the xml file wherein the error goes comes in when i go to this page. It isnt about cleaning the project and the manifest as well cause it works when i delete the settext code 

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      android:scrollbarAlwaysDrawVerticalTrack="true"
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" android:gravity="top|center"
      android:background="@drawable/bg">
        <TableLayout
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            >
            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

            </TableRow>
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:gravity="right">
                <Button
                    android:id="@+id/button1"      
                    android:background="@drawable/button2"
                    android:textColor="#FFFFFF"   
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:text="ADD TO MENU" android:gravity="right" android:paddingRight="4sp" android:paddingTop="10sp"/>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:gravity="left">
        </TableRow>
        <TableLayout
            android:id="@+id/tableLayout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            <TableRow
                android:id="@+id/tableRow5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TableRow>
            <TableRow
                android:id="@+id/tableRow6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Amount Per Serving: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="20"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Calories:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView17"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="30"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <ImageView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@android:drawable/divider_horizontal_dark"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:paddingBottom="2dp"
        android:paddingTop="2dp" />
            <TableRow
                android:id="@+id/tableRow8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TableRow
                    android:id="@+id/tableRow14"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >
                    <TextView
                        android:id="@+id/textView3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="right"
                        android:text="% Daily Value:          "
                        android:textAppearance="?android:attr/textAppearanceMedium" />
                    <TextView
                        android:id="@+id/textView21"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="35"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
                </TableRow>
            </TableRow>
        </TableLayout>
        <TableLayout
            android:id="@+id/tableLayout3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            <TableRow
                android:id="@+id/tableRow9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Total Fat:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView22"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="60"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="       Saturated Fat:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView23"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="34"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView10"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="       Trans Fat:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView24"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="53"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView11"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Cholesterol:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView25"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="25"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView12"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Sodium:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView26"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="10"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow15"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView13"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Total Carbohydrate:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView27"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="200"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow16"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView14"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="       Dietary Fiber:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView28"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="34"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow17"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView15"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="       Sugars:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView29"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="16"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow18"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView16"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Protein:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView30"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="40"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
    <ImageView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@android:drawable/divider_horizontal_dark"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:paddingBottom="2dp"
        android:paddingTop="2dp" />
    <TableRow
        android:id="@+id/tableRow24"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </TableRow>
            <TableRow
                android:id="@+id/tableRow19"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TableRow>
        </TableLayout>
        <TableLayout
            android:id="@+id/tableLayout4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            <TableRow
                android:id="@+id/tableRow20"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TableRow>
            <TableRow
                android:id="@+id/tableRow21"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TableRow>
            <TableRow
                android:id="@+id/tableRow22"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView19"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Vitamin A: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                            <TextView
                    android:id="@+id/textView31"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="40"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView20"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="   Vitamin C: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                            <TextView
                    android:id="@+id/textView32"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="30"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow23"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                <TextView
                    android:id="@+id/textView6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Calcium: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                            <TextView
                    android:id="@+id/textView33"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="35"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                <TextView
                    android:id="@+id/textView18"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="   Iron: "
                    android:textAppearance="?android:attr/textAppearanceMedium" />
                            <TextView
                    android:id="@+id/textView34"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="40"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </TableRow>
            <TableRow
                android:id="@+id/tableRow25"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TableRow>
        </TableLayout>
    </LinearLayout>

这是我放额外的地方

    package kfc.project;
import java.util.ArrayList;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class ProductListView extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);
        final ProductList pl = new ProductList();
        //setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, PRODUCTS));
        setListAdapter(new ArrayAdapter<Product>(this, R.layout.list_item, pl.getList() ));
        ListView lv = getListView();
        lv.setTextFilterEnabled(true);
        lv.setOnItemClickListener(new OnItemClickListener() {
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // When clicked, show a toast with the TextView text
            Toast.makeText(getApplicationContext(), "View Product", Toast.LENGTH_SHORT).show();
            Product product = pl.getList().get(position);
            Intent intent = new Intent(ProductListView.this, productdetail.class);
            intent.putExtra("name",product.getName());
            intent.putExtra("calories", product.getCalories());
            intent.putExtra("serving size", product.getServingSize());
            intent.putExtra("fat", product.getFat());
            intent.putExtra("saturated fat", product.getSaturatedFat());
            intent.putExtra("trans fat", product.getTransFat());
            intent.putExtra("cholesterol", product.getCholesterol());
            intent.putExtra("sodium", product.getSodium());
            intent.putExtra("carbs", product.getCarbs());
            intent.putExtra("protein", product.getProtein());
            ProductListView.this.startActivity(intent);
            startActivity(new Intent("kfc.project.PRODUCTDETAIL"));
          }
        });
    }

    //TEST STRING ARRAY
    static String[] PRODUCTS = new String[] {
        "Chicken", "Rice", "Coke", "Chicken Burger"
    };

}

这是添加阵列列表项的位置

    package kfc.project;
import java.util.ArrayList;
public class ProductList {
    ArrayList<Product> list;

    public ProductList (){
        list = new ArrayList<Product>();
        //CREATE PRODUCT HERE
        Product chicken;
        list.add(new Product("ChickenTest",99));    
        Product rice;
        list.add(new Product("RiceTest",11));
    }
    public String[] getNames (){
        int c = 0;
        int size = list.size() - 1;
        String[] names = new String[size];
        while (size >= c) {
            //names.add(list.get(c).getName());
            names[c] = list.get(c).getName();
            c++;
        }
        c = 0;
        return names;
    }
    public ArrayList<Product> getList (){
        return list;
    }
}

这是参数的代码

    package kfc.project;
public class Product {

    String name;
    int servingSize;
    int calories;
    int fat;
    int saturatedFat;
    int transFat;
    int cholesterol;
    int sodium;
    int carbs;
    int protein;

    public Product (String name, int servingSize, int calories, int fat, int saturatedFat, int transFat, int cholesterol, int sodium, int carbs, int protein){
        this.name=name;
        this.calories=calories;
        this.servingSize=servingSize;
        this.fat=fat;
        this.saturatedFat=saturatedFat;
        this.transFat=transFat;
        this.cholesterol=cholesterol;
        this.sodium=sodium;
        this.carbs=carbs;
        this.protein=protein;
    }
    public Product (String name, int servingSize){
        this.name=name;
        this.servingSize=servingSize;
    }
    public String getName() {
        return name;
    }
    public int getServingSize() {
        return servingSize;
    }
    public int getCalories() {
        return calories;
    }
    public int getFat() {
        return fat;
    }
    public int getSaturatedFat() {
        return saturatedFat;
    }
    public int getTransFat() {
        return transFat;
    }
    public int getCholesterol() {
        return cholesterol;
    }
    public int getSodium() {
        return sodium;
    }
    public int getCarbs() {
        return carbs;
    }
    public int getProtein() {
        return protein;
    }

}

extras变量为NULL

Bundle extras = getIntent().getExtras();
String name = extras.getString("name");

更新:

首先,这条线路不需要

startActivity(new Intent("kfc.project.PRODUCTDETAIL"));

其次,您需要从productdetail中的getIntent()getExtra(),而不是getExtras()。样品:

// get intent object once
Intent receivedIntent = getIntent();
// get product name
String productName = receivedIntent.getExtra("name"); 
// get serving size
int servingSize = receivedIntent.getExtra("serving size");
// do the same for other props
Bundle extras = getIntent().getExtras();
String name = extras.getString("name");

如果intent中没有存储额外内容,getExtras((可能返回null。检查附加项是否为null。

您可能需要对额外内容进行null检查。

只需删除这行

startActivity(new Intent("kfc.project.PRODUCTDETAIL"));

它在没有额外内容的情况下启动您的活动,导致您的额外内容为空

相关内容

  • 没有找到相关文章

最新更新