2015-10-07 48 views
1

我想通过一些音频的名字在我的Android App.I以前的活动尝试了很多ways.I的不知道在哪里我正在犯错误了。我想将记录音频名称发送到上一课。为什么不传球意图之前的活动中的Android

这是我的代码record_Audio。

btnSaveRecord = (Button)findViewById(R.id.buttonSaveRecord); 
      btnSaveRecord.setOnClickListener(new View.OnClickListener() 
      { 
       @Override 
       public void onClick(View v) 
       { 
        /* Intent intent = new Intent(Record_Audio.this , AddPost.class); 
        intent.putExtra("STRING_I_NEED", newAudioFile); 
        setResult(REQUEST_CODE, intent); 
        finish();*/ 

        Intent intent = new Intent(Record_Audio.this, AddPost.class); 
        // Add any data that you wish to send 
        intent.putExtra("DATA", newAudioFile); 
        startActivityForResult(intent, REQUEST_CODE); 

        //Intent intent = new Intent(Record_Audio.this , AddPost.class); 
        //startActivity(intent); 
        //finish(); 

       } 
      }); 

在以前的代码,我想收到AudioName = AddPost活动

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     super.onActivityResult(requestCode, resultCode, data); 
     try 
     { 
      if (requestCode == REQUEST_CODE) 
      { 
       if (resultCode == RESULT_OK) 
       { 
        String newString = data.getExtras().getString("STRING_I_NEED"); 
        Log.e("newString "," = "+newString); 
        String valueToChange = data.getExtras().getString("DATA"); 
        Log.e("valueToChange "," = " + valueToChange); 

       } 
      } 

      if (requestCode == CAMERA_REQUEST) 
      { //Capture Camera Image } 

      if (requestCode == RESULT_LOAD_IMG) 
      { // //Capture Gallery Image} 
+0

没有人知道什么是你当前活动的,哪些是你以前提到activity.Please活动名称 –

+0

@androidTag:我觉得你的代码是不完整的.. !! – AndiGeeky

+0

你想将数据从Record_Audio传递给AddPost?或从AddPost到Record_Audio? –

回答

2

首先,当你从AddPost活动呼吁RecordAudio活动,您不能使用startActivity。您需要使用startActivityForResult()

调用RecordAudio从AddPost使用下面的代码:

Intent intent=new Intent(AddPost.this, RecordAudio.class); 
startActivityForResult(intent, 1010); 

在你RecordAudio文件

getIntent().putExtra("data", "your data"); 
setResult(RESULT_OK, getIntent()); 
finish(); 

和AddPost onActivityForResult()

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

谢谢拉维你救了我的一天!伟大的工作,非常感谢你 – androidTag

0

在这里,我提供了一个简单的演示,介绍如何为结果启动活动:

这里是我的FirstActivity

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 

public class FirstActivity extends Activity { 

    private Button btnFirstActivity; 
    private static final String TAG = FirstActivity.class.getSimpleName(); 
    public static final String KEY_FILENAME = "filename"; 
    public static final int REQUEST_CODE = 0; 
    public static final int RESPONSE_CODE = 1; 

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

     btnFirstActivity = (Button) findViewById(R.id.btn_first); 
     btnFirstActivity.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
       intent.putExtra(KEY_FILENAME, "audiofile.mp3"); 
       startActivityForResult(intent, REQUEST_CODE); 
      } 
     }); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == REQUEST_CODE && resultCode == RESPONSE_CODE) { 
      Log.e(TAG, "-------GOT RESPONSE CODE--------"); 
      Log.e(TAG, "DATA IS : " + data.getStringExtra(KEY_FILENAME)); 
     } 
    } 
} 

布局FirstActivityactivity_first.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <Button 
     android:id="@+id/btn_first" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Start Second Activity" /> 

</LinearLayout> 

这里是我的SecondActivity

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 

public class SecondActivity extends Activity { 

    private Button btnSecondActivity; 
    private static final String TAG = SecondActivity.class.getSimpleName(); 
    private String strFileName = null; 
    private SecondActivity secondActivity; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_second); 
     secondActivity = SecondActivity.this; 
     strFileName = getIntent().getStringExtra(FirstActivity.KEY_FILENAME); 
     btnSecondActivity = (Button) findViewById(R.id.btn_second); 
     btnSecondActivity.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       for (int i = 0; i < 50; i++) { 
        Log.e(SecondActivity.TAG, "------PRINTING-----" + i); 
       } 

       Intent intent = new Intent(); 
       intent.putExtra(FirstActivity.KEY_FILENAME, strFileName); 
       setResult(FirstActivity.RESPONSE_CODE, intent); 
       secondActivity.finish(); 
      } 
     }); 
    } 

} 

布局SecondActivityactivity_second.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 


    <Button 
     android:id="@+id/btn_second" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Start First Activity" /> 

</LinearLayout> 

希望它能帮助:)

谢谢..!