2012-01-18 20 views
1

私は電話番号とメッセージをユーザーから入力してSMSを送信するためのアプリを作成しようとしています。残念ながら、EditTextは問題を引き起こしています。ここに私が使ったコードがあります。誰かが私のためにそれを修正してくださいでしたか?ありがとう!EditTextを使用してAndroidで文字列を取得する方法は?

public class SmsActivity extends Activity 
{ 
    EditText et1,et2; 
    Button send; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     et1 = (EditText)findViewById(R.id.et1); 
     et2=(EditText)findViewById(R.id.et2)… 

     final String phno = et1.getText().toString(); 
     final String msg= et2.getText().toString(); 

     send = (Button) findViewById(R.id.send); 
     send.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       sendsms(phno,msg); 
      } 
     }); 
    } 


    private void sendsms(String phno,String msg) 
    { 
     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phno, null, msg, null, null); 
    } 
} 
+2

どのような問題がありますか? – Jivings

+0

なぜ 'et2 =(EditText)findViewById(R.id.et2)...'行に省略記号がありますか? – Vladimir

答えて

0

非常に曖昧であっても、私は助けてくれるように努力します。これらの行で

et1 = (EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2)…

がET1であり、あなたのレイアウトXMLで述べたように、これらのフォームの実際のIDをET2? 'et2'の後に意図的にセミコロンがありませんでしたか?

また、ストリングを最終的にする必要はありませんが、個人的な選択だと思います。

もう一つ...

This pdf will help you do what you are trying to do.

+0

ええ、文字列は内部クラスの内部で使用するために最終的なものでなければなりません。 – Vladimir

2

あなたはEditText秒の値に(も、あなたのコード内のコメントで述べたように、一度だけ呼び出される=)onCreate()方法であなたの文字列)を設定しています、私はその時点で空であると想定していますので、あなたのOnClickListenerでは、決して変更されない初期値を使用しています。 OnClickListenerに必要なものは

send = (Button) findViewById(R.id.send); 
send.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) 
    { 
     String phno = et1.getText().toString(); 
     String msg= et2.getText().toString(); 

     sendsms(phno,msg); 
    } 
}); 
関連する問題