2011-01-10 61 views
1

我正在製作處理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);   
    } 
} 

回答

1

在你的main.xml嘗試在EditText上

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

添加此如果添加

android:text="contact number" 

運行應用程序時,用戶也可以更改聯繫人號碼。這種方法也不能修復數字。

0

在部分中,使用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

相關問題