final EditText phoneNumber = (EditText) findViewById(R.id.phoneNumber ); 
        final Button callButton = (Button) findViewById(R.id.callButton); 
        callButton.setOnClickListener(new Button.OnClickListener() { 
        //Chapter 7: Using Intents and the Phone Dialer 147 
        public void onClick(View v){ 
        if (validatePhoneNumber(phoneNumber.getText().toString())){ 
        Intent CallIntent = new 
        Intent(Intent.CALL_ACTION,Uri.parse("tel:" + phoneNumber.getText())); 
        CallIntent.setLaunchFlags(Intent.NEW_TASK_LAUNCH ); 
        startActivity(CallIntent); 
        } 
        else{ 
        showAlert("Please enter a phone number in the X-XXX-XXX-XXXX 这句,有错误,请指教!
        format.",0, "Format Error", "Re-enter Number",false); 
        } 
        } 
        }); 
        } 
        public boolean validatePhoneNumber(String number){ 
        Pattern phoneNumber = Pattern.compile("(\\d-)?(\\d{3}-)?\\d{3} \\d{4}"); 
        Matcher matcher = phoneNumber.matcher(number); 
        return matcher.matches();
请高手,顺便,帮我尽量解释下,这些语句的作用。以及重点的方法含义。
感激不尽!

解决方案 »

  1.   

    不知道你哪里看不懂
    final EditText phoneNumber = (EditText) findViewById(R.id.phoneNumber );  
    final Button callButton = (Button) findViewById(R.id.callButton);  
    这两句分别定义了一个EditText部件和一个Button部件,然后利用finViewById语句到预先定义好的xml布局文件里寻找对应的布局元件.callButton.setOnClickListener
    这句为callButton这个按钮添加了点击监听
    而这一堆 
    public void onClick(View v){  
    if (validatePhoneNumber(phoneNumber.getText().toString())){  
    Intent CallIntent = new  
    Intent(Intent.CALL_ACTION,Uri.parse("tel:" + phoneNumber.getText()));  
    CallIntent.setLaunchFlags(Intent.NEW_TASK_LAUNCH );  
    startActivity(CallIntent);  
    }  
    else{  
    showAlert("Please enter a phone number in the X-XXX-XXX-XXXX 这句,有错误,请指教!
    format.",0, "Format Error", "Re-enter Number",false);  
    }  
    是实现了这个点击监听所要实现的动作,也就是你点击了这个按钮以后会引起什么动作.最后一段是定义了一个函数,具体什么作用结合程序理解一下吧
      

  2.   

            final EditText phoneNumber = (EditText) findViewById(R.id.phoneNumber ); 
            final Button callButton = (Button) findViewById(R.id.callButton);         callButton.setOnClickListener(new Button.OnClickListener() { 
           
            public void onClick(View v){ 
            if (validatePhoneNumber(phoneNumber.getText().toString())){ 
            Intent CallIntent = new 
            Intent(Intent.ACTION_CALL,Uri.pars("tel:"
                            +phoneNumber.getText()));          CallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK ); 
            startActivity(CallIntent); 
            }          else{ 
            showAlert("Please enter a phone number in the X-XXX-XXX-XXXX format.",0, "Format Error", "Re-enter Number",false); 
            } 
            } private void showAlert(String string1, int i, String string2,
    String string3, boolean b) {
    // TODO Auto-generated method stub

    } (上述,问题是缺少了个方法的定义)
            }); 
            } 
            public boolean validatePhoneNumber(String number){ 
            Pattern phoneNumber = Pattern.compile("(\\d-)?(\\d{3}-)?\\d{3} \\d{4}"); 
            Matcher matcher = phoneNumber.matcher(number); 
            return matcher.matches();    }呵呵,谢谢。让我找到了,解决的办法。