如何在Android应用程序中设置修复的电话号码

问题描述:

我正在制作处理SMS消息的应用程序,并且希望允许用户键入想要发送SMS的号码固定号码已在那里,以便短信也发送到那里。这是我的应用程序的XML:如何在Android应用程序中设置修复的电话号码

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Enter the phone number of recipient" 
    /> 
    <EditText 
     android:id="@+id/txtPhoneNo" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     /> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     android:text="Message" 
     />  
    <EditText 
     android:id="@+id/txtMessage" 
     android:layout_width="fill_parent" 
     android:layout_height="150px" 
     android:gravity="top"   
     />   
    <Button 
     android:id="@+id/btnSendSMS" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Send SMS" 
     /> 
</LinearLayout> 

这里是我的Java代码,也是我使用一些过时的类,我打算改变,但至今没有对这些任何建议是appreaciated这样做还有= )

public class SMS extends Activity { 
    Button btnSendSMS; 
    EditText txtPhoneNo; 
    EditText txtMessage; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);   

     btnSendSMS = (Button) findViewById(R.id.btnSendSMS); 
     txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo); 
     txtMessage = (EditText) findViewById(R.id.txtMessage); 

     btnSendSMS.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){     
       String phoneNo = txtPhoneNo.getText().toString(); 
       String message = txtMessage.getText().toString();     
       if (phoneNo.length()>0 && message.length()>0)     
        sendSMS(phoneNo, message);     
       else 
        Toast.makeText(getBaseContext(), 
         "Please enter both phone number and message.", 
         Toast.LENGTH_SHORT).show(); 
      } 
     });   
    } 

    //---sends an SMS message to another device--- 
    @SuppressWarnings("deprecation") 
    private void sendSMS(String phoneNumber, String message) 
    {   
     String SENT = "SMS_SENT"; 
     String DELIVERED = "SMS_DELIVERED"; 

     PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, 
      new Intent(SENT), 0); 

     PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, 
      new Intent(DELIVERED), 0); 

     //---when the SMS has been sent--- 
     registerReceiver(new BroadcastReceiver(){ 
      @Override 
      public void onReceive(Context arg0, Intent arg1) { 
       switch (getResultCode()) 
       { 
        case Activity.RESULT_OK: 
         Toast.makeText(getBaseContext(), "SMS sent", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
         Toast.makeText(getBaseContext(), "Generic failure", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_NO_SERVICE: 
         Toast.makeText(getBaseContext(), "No service", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_NULL_PDU: 
         Toast.makeText(getBaseContext(), "Null PDU", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_RADIO_OFF: 
         Toast.makeText(getBaseContext(), "Radio off", 
           Toast.LENGTH_SHORT).show(); 
         break; 
       } 
      } 
     }, new IntentFilter(SENT)); 

     //---when the SMS has been delivered--- 
     registerReceiver(new BroadcastReceiver(){ 
      @Override 
      public void onReceive(Context arg0, Intent arg1) { 
       switch (getResultCode()) 
       { 
        case Activity.RESULT_OK: 
         Toast.makeText(getBaseContext(), "SMS delivered", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case Activity.RESULT_CANCELED: 
         Toast.makeText(getBaseContext(), "SMS not delivered", 
           Toast.LENGTH_SHORT).show(); 
         break;       
       } 
      } 
     }, new IntentFilter(DELIVERED));   

     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);   
    } 
} 

在你的main.xml尝试在EditText上

android:text="your desired number" 
    android:id="@+id/txtPhoneNo" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"   
    /> 

添加此如果添加

android:text="contact number" 

运行应用程序时,用户也可以更改联系人号码。这种方法也不能修复数字。

在部分中,使用android:text =“MOBILE_NUMBER”添加默认文本。在你的情况下,它会像,

<EditText android:id="@+id/txtPhoneNo" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     android:text="MOBILE_NUMBER" 

    /> 

点击该字段,您的默认号码将在那里。根据您的使用情况,您可以通过点击让用户输入他的电话号码来清除该字段。定义onClick函数并在输入前清除文本:)

祝您好运, Siddu