2011-11-30 49 views
0

這是我得到的錯誤。您可以在下面看到受此會話影響的所有代碼。我把意圖放在哪裏,我在哪裏得到它,涉及的類和參數。在執行設置文本的活動中獲得強制關閉錯誤

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

} 

這是parameteres代碼

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


} 

回答

0

extras變量是NULL

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

更新:

首先,這一行不需要

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

其次,你從getIntent()productdetail,不getExtras()需要getExtra()。 對於樣本:如果沒有存儲在意向額外

// 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 
+0

他的代碼比URS不同?我不這麼認爲? –

+0

我把我如何放置意圖和不同的參數的代碼 – user1072908

+0

我指出問題在哪裏..不是一個待修復的代碼__! –

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

getExtras()可能返回null。檢查額外的空值。

+0

我把我的代碼如何放置意圖和不同的參數 – user1072908

0

您可能需要對extras進行空檢查。

+0

這可能有助於'如果(name!= null){//做某事} else {}'我認爲你錯過了其他部分。 – Wesley

+0

我把我如何放置意圖和不同的參數代碼 – user1072908

+0

你嘗試添加一個else部分 – Wesley

0

就刪除此行

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

它開始你的活動,無需額外,導致你的演員是空