2011-11-17 4 views
0
package com.android.SMStest; 

import android.app.Activity; 

import android.content.Context; 

import android.os.Bundle; 
import android.telephony.SmsManager; 

import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
import android.telephony.TelephonyManager; 
import android.widget.TextView; 

public class SMStestActivity extends Activity { 
private TextView txtPhoneNo; 
private EditText txtMessage; 
private Button btnSendSMS; 
private EditText smsamount; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    smsamount = (EditText) findViewById(R.id.smsamount); 
    btnSendSMS = (Button) findViewById(R.id.btnSendSMS); 
    txtMessage = (EditText) findViewById(R.id.txtMessage); 
    txtPhoneNo = (TextView) findViewById(R.id.txtPhoneNo); 
    TextView textgetLine1Number = (TextView) findViewById(R.id.txtPhoneNo); 
    // retrieve a reference to an instance of TelephonyManager 
    final TelephonyManager phonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    textgetLine1Number.setText(getLine1Number()); 

    btnSendSMS.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String phoneNo = phonyManager.getLine1Number().toString(); 
      txtPhoneNo.setText(phoneNo); 
      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--- 
private void sendSMS(String phoneNumber, String message) { 
    int i; 
    SmsManager sms = SmsManager.getDefault(); 
    for (i = 0; i < 10; i++) { 
     sms.sendTextMessage(phoneNumber, null, message, null, null); 
    } 

} 

public String getLine1Number() { 
    return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) 
      .getLine1Number(); 
    } 
} 

휴대 전화 MDN에 SMS 기능을 테스트하기 위해 일정량의 문자 메시지를 보내려는 앱을 활성화하는 데 사용하고 있습니다. 내가 겪고있는 문제는 사용자가 UI에 입력 한 숫자를 가져 와서 앱이 보내는 SMS의 수를 실제로 제어하는 ​​것입니다. 내가 가지고있는 방식은 프로그래밍을 위해 (i = 0; i < 10; i ++) {로 설정된 프로그래밍 된 세트 금액을 보내 게됩니다. 사용자가 입력 한 내용을 수락하여 자신의 금액을 설정할 수 있어야합니다. 난 정수로 정수로 그것을 시도했지만, SMS를 보내기 버튼을 클릭하면 응용 프로그램이 강제로 닫힙니다. getText(). toString()을 사용하려고 시도했지만 정수로 설정하도록 알려줍니다. 안드로이드 초보자를 도울 수있는 아이디어가 있습니까?자바에서 xml의 설정 번호

답변

1

당신은 그래서 그냥 변경, 문자열을 구문 분석해야합니다

for (i = 0; i < 10; i++) { 

에 :

int amount = 10; // just making 10 the default if the EditText has an invalid value 
try { 
    amount = Integer.parseInt(smsamount.getText().toString()); 
} 
catch (NumberFormatException) {} 

for (i = 0; i < amount; i++) { 
+0

, 당신이 너무 감사 매력 :)처럼 일했다. catch (NumberFormatException) {}를 catch (NumberFormatException smsamount) {}로 변경하는 것이 조금 다른 작업이었습니다. – Jasonwilliams10