package sun.sms;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SmsActivity extends Activity {
/** Called when the activity is first created. */
private Button sendButton ;
private EditText editText1 ;
private EditText editText2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button sendButton = (Button)this.findViewById(R.id.sendbutton);
sendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText editText1 = (EditText)findViewById(R.id.phonetext);
EditText editText2 = (EditText)findViewById(R.id.contenttext);
String mobile = editText1.getText().toString();
String content = editText2.getText().toString();
SmsManager smsManager = SmsManager.getDefault();
List<String> texts = smsManager.divideMessage(content);
for(String text:texts){
smsManager.sendTextMessage(mobile, null, text, null, null);
}
Toast.makeText(SmsActivity.this, "发送完成", 1).show();
}
});
}
}
这些都是java 的基础知识,之前不很明白EditText editText1 = (EditText)findViewById(R.id.phonetext);
findViewById是外部类SmsActivity 的方法,为什么这里可以直接用findViewById,原因是因为匿名内部类不存在findViewById方法,所以他会寻找外部类SmsActivity 的findViewById。由此可见,当匿名内部类存在findViewById同名方法时,就不能省略SmsActivity .this .findViewById的引用了.
本文介绍了一个使用Java实现短信发送的应用实例。通过SmsManager类,文章详细解释了如何从用户界面上获取手机号与短信内容,并利用Android系统的SmsManager进行短信的分割与发送。此外,还介绍了匿名内部类中调用外部类方法的具体方式。
470

被折叠的 条评论
为什么被折叠?



