2016-10-10 12 views
0

MainActivityアンドロイドintent.getStringExtra()の戻りヌル

public class MainActivity extends AppCompatActivity { 
      private static final int REQ_CODE_TO_ADD = 123; 
      final ArrayList<Contact> allContact = new ArrayList(); 
      ArrayList<String> name = new ArrayList(); 

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

    final Intent intent = new Intent(this,DetailActivity.class); 
    Button addbt = (Button)findViewById(R.id.addbt); 

public void onClickAdd(View v){ 
    Intent intent = new Intent(this,AddContactActivity.class); 
    startActivityForResult(intent,REQ_CODE_TO_ADD); 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == REQ_CODE_TO_ADD){ 
     if(resultCode == 0){ 
      Intent intent = getIntent(); 
      String name2 = intent.getStringExtra("namev"); 
      String email2 = intent.getStringExtra("emailv"); 
      String birthday2 = intent.getStringExtra("birthdayv"); 

      Log.d("AAA",">>>:"+name2); 

      Contact person = new Contact(name2,email2,birthday2); 
      allContact.add(person); 
     }} 
} 
} 

AddContactActivity

public class AddContactActivity extends AppCompatActivity { 
private static final int REQ_CODE_TO_MAIN = 321; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_contact); 
} 

public void onClickOk(View v){ 
    EditText name = (EditText)findViewById(R.id.nameet); 
    EditText email = (EditText)findViewById(R.id.email); 
    EditText birthdate = (EditText)findViewById(R.id.birthdate); 

    Intent intent = new Intent(); 
    intent.putExtra("namev",name.getText().toString()); 
    intent.putExtra("emailv",email.getText().toString()); 
    intent.putExtra("birthdayv",birthdate.getText().toString()); 
    setResult(0,intent); 
    finish(); 
} 
} 

AddContactActivity Iすでにintent.putExtra name.getText()。toString()を使用し、MainActivity

に意図を送ります

なぜMainActivity Log.d出力のonActivityResult()がnullですか?

+4

のようにコードを修正し、あなたが正しい意図を使用していることを確信していますか? 'getIntent();'?私はそれが 'データ'でなければならないと思う... – Opiatefuchs

答えて

1
if(resultCode == 0){ 
     //Intent intent = getIntent(); 
     String name2 = data.getStringExtra("namev"); 
     String email2 = data.getStringExtra("emailv"); 
     String birthday2 = data.getStringExtra("birthdayv"); 

     Log.d("AAA",">>>:"+name2); 

     Contact person = new Contact(name2,email2,birthday2); 
     allContact.add(person); 
    }} 

2

アクティビティを最初に起動したインテントを使用しています。代わりにパラメータとして送信されたインテントを使用します。

あなたが データないgetIntentを(使用する必要が
0

Intent intent = getIntent(); 

テントのための必要はありません引数すなわち 'データ'

はこれを使用して、既に渡されます変数を使用してデータを抽出します。 これが役立つことを願っています。

0
Intent intent = getIntent(); // This line is wrong 
      String name2 = intent.getStringExtra("namev"); 
      String email2 = intent.getStringExtra("emailv"); 
      String birthday2 = intent.getStringExtra("birthdayv"); 

この

if(requestCode==2 && resultCode==RESULT_OK){ 
      Bundle bundle=data.getExtras();// here "data" is your intent 
      String string=bundle.getString("message"); 

      Log.i(TAG,"onActivityResult Called..."+string); 
     } 
関連する問題