2015-02-10 86 views
-1

我的基本活动代码 -Android的基本活动的onActivityResult()结果从子活动需要

public abstract class SpeechToTextActivity extends Activity { 

private final int REQ_CODE_SPEECH_INPUT = 100; 



/** 
* Showing google speech input dialog 
* */ 
public void promptSpeechInput() { 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, 
      getString(R.string.speech_prompt)); 
    try { 
     startActivityForResult(intent, REQ_CODE_SPEECH_INPUT); 
    } catch (ActivityNotFoundException a) { 
     Toast.makeText(getApplicationContext(), 
       getString(R.string.speech_not_supported), 
       Toast.LENGTH_SHORT).show(); 
    } 
} 

/** 
* Receiving speech input 
* */ 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    switch (requestCode) { 
    case REQ_CODE_SPEECH_INPUT: { 
     if (resultCode == RESULT_OK && null != data) { 

      ArrayList<String> result = data 
        .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 


     } 
     break; 
    } 

    } 
} 

}

现在我需要onActivityResult()的结果,从延伸SpeechToTextActivity另一个孩子的活动。

请帮帮我。

回答

1

覆盖孩子中的onActivityResult,并检索结果。代码是一样的。如果孩子有责任管理数据,你应该从父母中移除案例,并在派生类中使用代码

+0

感谢您的建议,请您解释“如果孩子负责管理数据,你应该从父项中移除案例,并且只在派生类中使用代码“或者给出一些示例代码。 – 2015-02-10 12:57:11

+0

超级类是否需要处理从捆绑中检索的对象?如果答案不是,那么派生类型是您的案例中处理数据的具体实例。所以你不需要它在超类中检索它 – Blackbelt 2015-02-10 13:01:14

+0

谢谢,我刚刚评论了超类onActivityResult()体,并保持它在子类上相同。感谢+1也为你。 – 2015-02-10 13:09:57