2010-07-07 3 views
0

ВниманиеНе получая желаемое значение в "onActivityResult"

**07-07 15:24:25.021: WARN/ActivityManager(57): Activity is launching as a new task, so cancelling activity result.** 
07-07 15:24:25.681: WARN/ActivityManager(57): Activity pause timeout for HistoryRecord{43cccce8 com.tcs.QuickNotes/.QuickNotesHome} 
07-07 15:24:27.392: INFO/AudioPathIn onActivityResult(1370): onActivityResult 
07-07 15:24:27.410: INFO/requestCode(1370): requestCode1 
07-07 15:24:27.420: INFO/resultCode(1370): **resultCode0** 

Мой код

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Log.i("AudioPathIn onActivityResult"," onActivityResult"+audioFilePath.getText().toString()); 
     Log.i("requestCode ","requestCode"+requestCode); 
     Log.i("resultCode ","resultCode"+resultCode); 
     if(requestCode == 1) 
     { 
      if(resultCode == RESULT_OK) 
      { 
       Audioflag=1; 
       audioFilePath.setVisibility(View.VISIBLE); 

       String defaultToneStatus = data.getStringExtra("DefaultTone"); 
       if(defaultToneStatus.equals("false")) 
       { 
        audioFilePath.setText(AudioRecorder.getFilePath()); 
       } 
       else 
       { 
        defaultAudioToneFlag = 1; 
        audioFilePath.setText("-"); 
       } 

      }else 
      { 
       Audioflag=0; 
      } 
     } 

    } 

Его не вводя код выше. Код результата всегда 0;

код от того, где управление возвращается:

public class AudioRecorder extends Activity implements OnClickListener { 


    String p = null; 
    static String filePath,FlagFromEdit,primaryIdFromEdit; 
    static int pId; 
    static int audioFlag; 
    Intent intent; 
    CheckBox defaultRingtone; 

    MyRecorder recorder; 
    /** Called when the activity is first created. */ 
    @Override  
    public void onCreate(Bundle savedInstanceState) 
    { 
     /** Called when the activity is first created. */ 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.voicenote); 
     audioFlag=0; 
     intent=getIntent(); 
     p = intent.getStringExtra("primaryiid"); 
     pId = (Integer.parseInt(p)); 
     Log.v("p", "pid" +pId); 
     setResult(RESULT_CANCELED); 
//  FlagFromEdit=intent.getStringExtra("FlagFromEdit"); 
//  primaryIdFromEdit=intent.getStringExtra("PrimaryId"); 
     defaultRingtone = (CheckBox)findViewById(R.id.Cb_defaultRingtone); 
     defaultRingtone.setOnClickListener(this); 

     Button btn_record = (Button)findViewById(R.id.btn_record); 
     btn_record.setOnClickListener(btnListenerRecord); 

     Button btn_stop = (Button)findViewById(R.id.btn_stop); 
     btn_stop.setOnClickListener(btnListenerStop); 

     Button btn_play = (Button)findViewById(R.id.btn_play); 
     btn_play.setOnClickListener(btnListenerPlay); 

     Button btn_save = (Button)findViewById(R.id.btn_save); 
     btn_save.setOnClickListener(btnListenerSave); 
    } 


    private OnClickListener btnListenerRecord = new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      try 
      { 

       recorder = new MyRecorder("voice/" + pId + ""); 
       recorder.start(); 
       Toast.makeText(getBaseContext(),"Recording started !", Toast.LENGTH_LONG).show(); 

      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    }; 

    private OnClickListener btnListenerStop = new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      MediaPlayer mp = new MediaPlayer(); 

      try 
      { 
       recorder.stop(); 
       Toast.makeText(getBaseContext(),"Stop ! IsPlaying : " + mp.isPlaying(), Toast.LENGTH_LONG).show(); 

      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    }; 


    private OnClickListener btnListenerPlay = new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      MediaPlayer mp = new MediaPlayer(); 

      try 
      { 
       mp.setDataSource("/sdcard/voice/"+ pId + ".3gp");// set data-source 
       mp.prepare();// prepare 
       mp.start(); 
       Toast.makeText(getBaseContext(), "Playing File no : "+pId, Toast.LENGTH_LONG).show(); 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 

      Toast.makeText(getBaseContext(), " Is playing ? : "+ mp.isPlaying(), 
        Toast.LENGTH_LONG).show(); 
     } 
    }; 


    private OnClickListener btnListenerSave = new OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      try 
      { 
       //    String fileName = "/sdcard/voice/"+ pId + ".3gp"; 
       //    Intent intentSave = new Intent(getBaseContext(),AddToDoList.class); 
       //    intentSave.putExtra("SavedFile", fileName); 
       //    intentSave.putExtra("CalledFrom", "AudioRecorder"); 
       //    startActivity(intentSave); 
       audioFlag=1; 
       Toast.makeText(AudioRecorder.this,"File saved successfully !",Toast.LENGTH_LONG).show(); 
       Intent intent = new Intent(); 
       intent.putExtra("DefaultTone", "false"); 
       setResult(RESULT_OK,intent); 
       finish(); 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    }; 

    public static int getAudioFlag() 
    { 
     return audioFlag; 
    } 

    public static String getFilePath() 
    { 
     filePath ="/sdcard/voice/"+ pId + ".3gp"; 
     return filePath; 
    } 


    public static void playAudioFile(Context ctx,String pId) 
    { 
     MediaPlayer mp = new MediaPlayer(); 

     try 
     { 
      Log.i("playaudiofile","file being played"); 
      //Toast.makeText(ctx,"file being played",Toast.LENGTH_LONG).show(); 
      Toast.makeText(ctx, "Playing File no : "+pId, Toast.LENGTH_LONG).show(); 
      mp.setDataSource("/sdcard/voice/"+ pId + ".3gp");// set data-source 
      mp.prepare();// prepare 
      mp.start(); 

     } 
     catch (Exception e) 
     { 
      Toast.makeText(ctx, " No file was assigned ", Toast.LENGTH_LONG).show(); 
      e.printStackTrace(); 
     } 

    } 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     Toast.makeText(AudioRecorder.this,"Default ringtone set !",Toast.LENGTH_LONG).show(); 
     Intent intent = new Intent(); 
     intent.putExtra("DefaultTone", "true"); 
     setResult(RESULT_OK,intent); 
     finish(); 
    } 

} 
+1

Почему вы устанавливаете результат в onCreate? 'SetResult (RESULT_CANCELED);' – Pentium10

ответ

0

Как Pentium10 заметил, вы вызываете setResult(RESULT_CANCELED); в OnCreate(). Вызов setResult() позволяет позвонить по методу onActivityResult.

Значение RESULT_CANCELLED - 0x00000000. Итак, просто удалите вызов setResult из метода onCreate

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