解释一下下面红色代码部分  先后顺序从上到下 解答的时候表明1,2,3,4!简单易懂 谢谢各位 !
package com.seles.cn.com;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;public class VS extends Activity {
    public TextView TextView01=null;
    public ImageButton ImageButton01=null;
    public static final int VOICE_RECOGNITION_REQUEST_CODE=0X1008;
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.voice);
        TextView01=(TextView)this.findViewById(R.id.TextView01);
        ImageButton01=(ImageButton)findViewById(R.id.Button01);
        ImageButton01.setOnClickListener(new OnClickListener(){            @Override
            public void onClick(View v) {
                PackageManager pm=getPackageManager();
                
                List<ResolveInfo> activities=pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);

                /*若有安装*/
                if(activities.size()!=0){
                    try{
                       
                        Intent intent =new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

                        /*在语音出现的说明*/
                        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "语音识别");
                        /*启动语音识别*/
                        startActivityForResult(intent,VOICE_RECOGNITION_REQUEST_CODE);
                        
                        
                    }catch (Exception e){
                        TextView01.setText(""+e.getMessage());
                        Toast.makeText(VS.this, e.getMessage(), Toast.LENGTH_LONG).show();
                    }
                }
                else{
                    TextView01.setText("RecognizerIntent NOT Found!");
                    Toast.makeText(VS.this, "RecognizerIntent NOT Found!", Toast.LENGTH_LONG).show();
                }            }
   
        });    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode){
            case VOICE_RECOGNITION_REQUEST_CODE:
                if(requestCode== VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK){
                    String strRet="";
                    /*取得识别结果*/
                    //ArrayList<String> results = data.getStringArrayExtra(RecognizerIntent.EXTRA_RESULTS);
                    
                    ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                    
                    for(int i=0;i<results.size();i++){
                        strRet+=results.get(i);
                        
                    }
                    if(strRet.length()>0){
                        TextView01.setText(strRet);
                        Toast.makeText(VS.this, "strRet", Toast.LENGTH_LONG).show();
                        
                        /*启动谷歌网页搜*/
                        Intent search =new Intent(Intent.ACTION_WEB_SEARCH);
                        search.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        /*放入字符串*/
                        search.putExtra(SearchManager.QUERY,strRet);
                        final Bundle appData=getIntent().getBundleExtra(SearchManager.APP_DATA);
                        
                        if(appData !=null){
                            search.putExtra(SearchManager.APP_DATA, appData);
                            
                        }
                        startActivity(search);
              
                    }
                    else{
                        TextView01.setText("Can not recognize........");
                        Toast.makeText(VS.this, "Can not recognize.....", Toast.LENGTH_LONG).show();
                    }
                    
                }
            break;
        }
       
        super.onActivityResult(requestCode, resultCode, data);
    }
    
    
    
    
    
    }