2016-02-23 2 views
-4

Кнопки переходят к предыдущему действию, но почему не передают намерения предыдущей деятельности.передать намерения предыдущей деятельности в Android?

Это мой код.

btnSaveRecord.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       /* 
       finish();*/ 

       /* Intent i = new Intent(Record_Audio.this, AddPost.class); 
       i.putExtra("STRING_I_NEED", newAudioFile); 
       //setResult(8, i); 
       //finish();//finishing activity 
       startActivityForResult(i,8); 
*/ 
       getIntent().putExtra("STRING_I_NEED", newAudioFile); 
       setResult(RESULT_OK, getIntent()); 
       finish(); 
       overridePendingTransition(R.anim.back, R.anim.back_out); 
      } 
     }); 

А вот предыдущий код активность в onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
{ 
if(requestCode==1010 && resultCode==RESULT_OK) 
       { 
        String STRING_I_NEED=data.getStringExtra("STRING_I_NEED"); 
        Log.e("","STRING_I_NEED = "+STRING_I_NEED);} 

} 
} 
+0

Где ваши данные "данные"? Не можете ли вы просто создать новый Intent и поместить свой результат вместо 'getIntent()' в свой первый фрагмент кода? –

+0

Я отредактировал мой пост, пожалуйста, см. Выше. Я положил весь код onActivityResult. –

+0

, где вы начали свою деятельность – Piyush

ответ

2
btnSaveRecord.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      Intent i = new Intent(); 
      i.putExtra("STRING_I_NEED", newAudioFile); 
      setResult(RESULT_OK, i); 
      finish(); 
      overridePendingTransition(R.anim.back, R.anim.back_out); 
     } 
    }); 
1

Вы должны передать данные обратно к предыдущей деятельности с использованием нового Intent.

Изменить

getIntent().putExtra("STRING_I_NEED", newAudioFile); 
setResult(RESULT_OK, getIntent()); 

в

Intent intent=new Intent(); 
intent.putExtra("STRING_I_NEED", newAudioFile); 
setResult(RESULT_OK,intent); 
0
you need to pass the same result code for intent in previous activity like 

FirstActivity:- 
int requestCode = 2222; 

Intent intent = new Intent(this,Classname.class); 
startActivityForResult(intent,requestCode); 

SecondActivity:- 
int requestCode = 2222; 

btnSaveRecord.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       /* 
       finish();*/ 

       /* Intent i = new Intent(Record_Audio.this, AddPost.class); 
       i.putExtra("STRING_I_NEED", newAudioFile); 
       //setResult(8, i); 
       //finish();//finishing activity 
       startActivityForResult(i,8); 
*/ 
       getIntent().putExtra("STRING_I_NEED", newAudioFile); 
       setResult(requestCode, getIntent()); 
       finish(); 
       overridePendingTransition(R.anim.back, R.anim.back_out); 
      } 
     }); 
0

Вы создаете два activiies

На второй активность

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    Intent i=new Intent(); 
    i.putExtra("msg", text); 
    setResult(RESULT_OK,i); 
    finish(); 
    Log.i("","<<<<<<<<<<<<<<<<<<<<<<"+text); 
    super.onBackPressed(); 
} 

on First Actvivty

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

      String str = data.getStringExtra("msg"); 

      tv.setText(str); 
      tv1=tv.getText().toString(); 
      tv2 = tv1; 

      Log.d(">>>>>>>>>>>>>>>>>>", "" + tv2); 

    super.onActivityResult(requestCode, resultCode, data); 

} 
Смежные вопросы