main.xml:
1 2
创建Activity名字为smsAndPhone:(名字没取好)
1 package cn.yj3g; 2 3 import java.util.List; 4 5 import android.app.Activity; 6 import android.content.Intent; 7 import android.graphics.Color; 8 import android.net.Uri; 9 import android.os.Bundle; 10 import android.telephony.SmsManager; 11 import android.text.Editable; 12 import android.text.TextWatcher; 13 import android.util.Log; 14 import android.view.Menu; 15 import android.view.MenuItem; 16 import android.view.View; 17 import android.widget.Button; 18 import android.widget.EditText; 19 import android.widget.Toast; 20 21 public class smsAndPhone extends Activity { 22 /** Called when the activity is first created. */ 23 private EditText mobileText = null; 24 private EditText contentText = null; 25 private Button button = null; 26 private Button button2 = null; 27 28 @Override 29 public void _disibledevent=> 30 super.onCreate(savedInstanceState); 31 setContentView(R.layout.main); 32 mobileText = (EditText) findViewById(R.id.mobile); 33 contentText = (EditText) findViewById(R.id.content); 34 button = (Button) findViewById(R.id.button); 35 mobileText.requestFocus(); 36 mobileText.setSelection(0); 37 mobileText.setTextColor(Color.GRAY); 38 contentText.requestFocus(); 39 contentText.setSelection(0); 40 contentText.setTextColor(Color.GRAY); 41 final String phoneNum = mobileText.getText().toString(); 42 final String content = contentText.getText().toString(); 43 button2 = (Button) findViewById(R.id.button2); 44 button2.setOnClickListener(new View.OnClickListener() { 45 @Override 46 public void _disibledevent=> 47 String mobile = mobileText.getText().toString(); 48 Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" 49 + mobile)); 50 smsAndPhone.this.startActivity(intent); 51 52 } 53 }); 54 mobileText.addTextChangedListener(new TextWatcher() { 55 int start; 56 int before; 57 int count; 58 String sBefore; 59 60 @Override 61 public void _disibledevent=>int start, int before, 62 int count) { 63 Log.e("tag", start + "" + before + "" + count); 64 this.start = start; 65 this.before = before; 66 this.count = count; 67 } 68 69 @Override 70 public void beforeTextChanged(CharSequence s, int start, int count, 71 int after) { 72 Log.d("tag", s + "+++++"); 73 sBefore = s.toString(); 74 } 75 76 @Override 77 public void afterTextChanged(Editable s) { 78 mobileText.setTextColor(Color.GREEN); 79 mobileText.setTextSize((float) 36); 80 String string = s.toString().toString(); 81 Log.e("TAG", "start==" + start); 82 83 if (sBefore.equals(phoneNum) 84 && string.length() < sBefore.length()) { 85 Log.e("TAG", "-------------1"); 86 s.delete(0, string.length()); 87 Log.e("TAG", s.toString().toString() + "--------1"); 88 s.append(phoneNum); 89 mobileText.setTextColor(Color.GRAY); 90 mobileText.setTextSize((float) 18); 91 button2.setEnabled(false); 92 button.setEnabled(false); 93 94 } else if (string.equals("")) { 95 Log.e("TAG", "-------------2"); 96 s.append(phoneNum); 97 mobileText.setTextColor(Color.GRAY); 98 mobileText.setTextSize((float) 18); 99 button2.setEnabled(false); 100 button.setEnabled(false); 101 } else if (sBefore.equals(phoneNum)) { 102 if (start == phoneNum.length()) { 103 Log.e("TAG", "-------------3"); 104 s.delete(0, phoneNum.length()); 105 if (contentText.length() == content.length()) { 106 button2.setEnabled(true); 107 button.setEnabled(false); 108 } else { 109 button2.setEnabled(false); 110 button.setEnabled(true); 111 } 112 } else if (start == 0) { 113 Log.e("TAG", "-------------4"); 114 s.delete(count, string.length()); 115 if (contentText.length() == content.length()) { 116 button2.setEnabled(true); 117 button.setEnabled(false); 118 } else { 119 button2.setEnabled(false); 120 button.setEnabled(true); 121 } 122 } else { 123 124 s.delete(start + count, string.length()); 125 Log.e("TAG", s.toString() + "-------------5"); 126 s.delete(0, start - 1); 127 if (contentText.length() == content.length()) { 128 button2.setEnabled(true); 129 button.setEnabled(false); 130 } else { 131 button2.setEnabled(false); 132 button.setEnabled(true); 133 } 134 Log.e("TAG", s.toString() + "-------------5"); 135 // s.replace(start+count+1, string.length(), ""); 136 } 137 } 138 } 139 }); 140 button.setOnClickListener(new View.OnClickListener() {// 如果要群发短信,可以把mobile写成数组形式 141 142 @Override 143 public void _disibledevent=>144 String mobile = mobileText.getText().toString(); 145 String content = contentText.getText().toString(); 146 SmsManager smsManger = SmsManager.getDefault(); 147 // 拆字符串 148 if (content.length() > 70) { 149 List
strings.xml:
1 2
在AndroidManifest.xml中添加发信息打电话的权限:
这样这个应用就做好了。当只输入电话号码时,我们只能进行打电话应用,当编辑了短息内容后,我们就可以进行发信息应用。由于之前自己也是刚接触Android,对布局的属性不是很了解,所以在实现输入框提示时用的方法比较复杂,在学习完布局后,我知道了在设计提示信息时可以在布局文件中直接添加,其属性为:
android:hint="string提示信息"
这样就省去了很大的麻烦。不过初学时并不知道这个属性,所以自己寻找了一些方法,尽管有些麻烦,但是学到了很多知识,虽然结果不是很好,但是在这个学习过程中的学习方法是一种经验。我在这里就不具体改了,有参照的朋友可以自己在开发工具上进行修改。
最新评论