2015-10-01 25 views
0

我環顧四周StackOverflow,但找不到像我的問題。我讀過關於多個問題的類似問題,但他們都是關於一個意圖中的一個額外的問題。我的問題是關於從第二個活動傳回主要活動的意圖中的一攬子附加內容。通過回綁定主要活動有零附加

這裏的主要業務相關剪斷:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);   
fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      Intent intent = new Intent(getApplicationContext(), addItem.class); 
      startActivityForResult(intent, 1); 

     } 
    }); 

和:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    System.out.println("REQUEST CODE:" + requestCode); 
    super.onActivityResult(requestCode, resultCode, data); 
    Bundle extras = data.getExtras(); 
    String item_name = extras.getString("ITEM_NAME"); 
    int item_price = extras.getInt("ITEM_PRICE"); 
    int item_qty = extras.getInt("ITEM_QTY"); 


    ListView list = (ListView) findViewById(R.id.listView); 
    ArrayList<String> arrayList = new ArrayList<String>(); 
    ArrayAdapter<String> adapter; 

    adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, arrayList); 

    list.setAdapter(adapter); 

    arrayList.add(item_name); 
    adapter.notifyDataSetChanged(); 

} 

次活動剪斷:

public class addItem extends AppCompatActivity{ 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.add_item); 

    Button btn1 = (Button)findViewById(R.id.button); 

    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      addToList(); 

     } 
    }); 

} 

public void addToList(){ 

    Intent inty = new Intent(); 
    Bundle extras = new Bundle(); 

    EditText txt1 = (EditText)findViewById(R.id.textItem); 
    String name = txt1.getText().toString(); 
    extras.putString("ITEM_NAME", name); 

    EditText txt2 = (EditText)findViewById(R.id.textPrice); 
    int price = Integer.parseInt(txt2.getText().toString()); 
    extras.putInt("ITEM_PRICE", price); 

    EditText txt3 = (EditText)findViewById(R.id.textNum); 
    int numb = Integer.parseInt(txt3.getText().toString()); 
    extras.putInt("ITEM_QTY", numb); 

    setResult(RESULT_OK, inty); 
    finish(); 
} 

}

更具體地講,當我按下對接上回送(從三種形式)的數據,應用程序崩潰和Android工作室告訴我:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { }} to activity {it.cryosec.appname/it.cryosec.appname.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 

我纔拿到什麼了嗎?

回答

1

您必須在第二個活動中爲您的意圖設置包。 intent.setExtras (bundle)