2015-03-08 118 views
0

我做了我的笔记本电脑,从一个活动传递信息时,另一延迟误差意图putExtra错误,NullPointerException异常

第一项活动(ListView和按钮) -

public class ContactActivity extends Activity { 

private ListView listContact; 
private ArrayList<String> contacts; 
private Intent intentContant; 
private boolean sendText; 
private Bundle bundle; 
private String getContent; 

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

    bundle = getIntent().getBundleExtra("android.intent.extra.INTENT"); 
    sendText = bundle.getBoolean("SetNewText"); 

    if(sendText){ 
     Intent intent = getIntent(); 
     getContent = intent.getStringExtra("FromAddEditString"); 
     contacts.add(getContent); 
    } 

    listContact = (ListView) findViewById(R.id.list_contact); 

    intentContant = new Intent(ContactActivity.this, AddEditActivity.class); 

    contacts = new ArrayList<String>(); 

    ArrayAdapter<String> contAdapter = new ArrayAdapter<String>(ContactActivity.this, 
                  R.layout.list_item, 
                  contacts); 
    listContact.setAdapter(contAdapter); 

    listContact.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      intentContant.putExtra("ContactName", parent.getAdapter().getItem(position).toString()); 

      bundle = new Bundle(); 
      bundle.putBoolean("ImportContact", true); 
      intentContant.putExtra("android.intent.extra.INTENT", bundle); 
      startActivity(intentContant); 
     } 
    }); 
} 

public void onClick(View v){ 
    switch(v.getId()){ 
     case R.id.btnAdd: 
      intentContant.putExtra("ContactName", ""); 

      bundle = new Bundle(); 
      bundle.putBoolean("ImportContact", false); 
      intentContant.putExtra("android.intent.extra.INTENT", bundle); 
      startActivity(intentContant); 
      break; 
     case R.id.btnBack: 
      intentContant = new Intent(ContactActivity.this, MainActivity.class); 
      startActivity(intentContant); 
      break; 
    } 
} 

}

次活动(编辑/添加联系人)

public class AddEditActivity extends Activity { 

    private String result; 
    private Boolean resultBoolean; 
    private EditText editText; 
    private Bundle extras; 
    private Bundle extrasBoolean; 

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

     extras = getIntent().getExtras(); 

     extrasBoolean = getIntent().getBundleExtra("android.intent.extra.INTENT"); 
     resultBoolean = extrasBoolean.getBoolean("ImportContact"); 

     editText = (EditText) findViewById(R.id.etAddEdit); 

     if(resultBoolean) { 
      result = extras.getString("ContactName"); 
      editText.setText(result); 
     } else if(!resultBoolean) 
      editText.setText(""); 

    } 

    public void add_edit_click(View v){ 
     Bundle btnAccept = new Bundle(); 
     Intent intentAddEdit1 = new Intent(AddEditActivity.this, ContactActivity.class); 
     Intent intentAddEdit2 = new Intent(AddEditActivity.this, ContactActivity.class); 
     switch (v.getId()){ 
      case R.id.btnAccept: 
       if (editText.getText().length() == 0) 
        Toast.makeText(getApplicationContext(), "Введите текст", Toast.LENGTH_SHORT).show(); 
       else { 
        btnAccept.putBoolean("SetNewText", true); 
        intentAddEdit1.putExtra("android.intent.extra.INTENT", btnAccept); 

        String result = editText.getText().toString(); 
        intentAddEdit2.putExtra("FromAddEditString", result); 
        startActivity(intentAddEdit1); 
       } 
       break; 
      case R.id.btnCancel: 
        btnAccept.putBoolean("SetNewText", false); 
        intentAddEdit1.putExtra("android.intent.extra.INTENT", btnAccept); 
        startActivity(intentAddEdit1); 
       break; 
     } 
    } 
} 

LogCat -

产生的原因:

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object reference 
     at com.itschoolsamsung.myapp.ContactActivity.onCreate(ContactActivity.java:36) 

我究竟做错了什么?

+0

的可能重复[什么是空指针异常,以及如何解决?(http://stackoverflow.com /问题/ 218384 /什么,是一个无效指针异常和如何-DO-I-FIX-IT) – Simon 2015-03-08 17:12:47

回答

0

您还没有初始化触点的ArrayList

使用本

private ArrayList<String> contacts =new ArrayList<String>();