标签:
1
看了黑马视频,根据电话拨号器和一个仿照QQ的恶意程序的讲解视频,自己动手做了短信发送器的练习,弄了一天终于完成,挺高兴的,纪念一下,
学了几年计算机,真心认真写几行代码,真的太少了。
上图为证:
2 其中遇到不少问题
1 编辑器在创建新的andriod项目的时候,会自带一个Fragmet_main.xml,后来搜了资料说是新版的开发环境新建andriod项目都这样,解决不了问题,
我就找了个旧的编辑器,详细见上篇博客。
2 忘记设置发送短信权限
3 指针错误
----- java.lang.NullPointerException
一按发送按钮就停机,经查发现在按了发送按钮后,在发短信的方法,把字符串变量加了引号, "number",同理 “text”,去掉引号即可。
---- 虚拟机里英文键盘不显示
在avd设置里弄了半天,一百度发现原来上面写的有英文说明,支持设备的物理,也就是电脑键盘可以直接输入 - -!
------ 在虚拟设备里无法安装apk,提示adb问题
估计是路径问题,我更改了环境变量,把andriod环境变量中I:\adt-bundle-windows-x86-20130717\sdk\platform-tools 加入,即可。
3代码
MainActivity.java
1 package com.stones.smssend; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.content.DialogInterface.OnClickListener; 6 import android.support.v4.widget.SimpleCursorAdapter.ViewBinder; 7 import android.telephony.SmsManager; 8 import android.view.Menu; 9 import android.view.View; 10 import android.widget.Button; 11 import android.widget.EditText; 12 13 public class MainActivity extends Activity implements View.OnClickListener{ 14 private EditText number; 15 private EditText sms_text; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_main); 21 //获取号码和文本 22 number=(EditText)MainActivity.this.findViewById(R.id.et_number); 23 sms_text=(EditText)MainActivity.this.findViewById(R.id.sms_text); 24 //获取按钮 25 Button smssend=(Button)MainActivity.this.findViewById(R.id.sms_send); 26 smssend.setOnClickListener(this); 27 } 28 29 //发送短信方法 30 public void smsSend(){ 31 String smsnumber=number.getText().toString().trim(); 32 String test=sms_text.getText().toString(); 33 SmsManager smsManager=SmsManager.getDefault(); 34 smsManager.sendTextMessage( 35 smsnumber, 36 null, 37 test, 38 null, 39 null); 40 } 41 42 @Override 43 public void onClick(View V) 44 { 45 switch (V.getId()) 46 { 47 case R.id.sms_send: 48 smsSend(); 49 break; 50 51 default: 52 break; 53 } 54 55 } 56 57 @Override 58 public boolean onCreateOptionsMenu(Menu menu) { 59 // Inflate the menu; this adds items to the action bar if it is present. 60 getMenuInflater().inflate(R.menu.main, menu); 61 return true; 62 } 63 64 }
activity_main.xml
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" > 10 11 <TextView 12 android:id="@+id/textView1" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:layout_alignParentLeft="true" 16 android:layout_alignParentTop="true" 17 android:text="请输入手机号码" /> 18 19 <EditText 20 android:id="@+id/et_number" 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:layout_alignLeft="@+id/textView1" 24 android:layout_below="@id/textView1" 25 android:layout_marginTop="18dp" 26 android:ems="10" 27 android:inputType="phone" > 28 29 <requestFocus /> 30 </EditText> 31 32 <TextView 33 android:id="@+id/textView2" 34 android:layout_width="wrap_content" 35 android:layout_height="wrap_content" 36 android:layout_alignLeft="@+id/editText3" 37 android:layout_below="@id/et_number" 38 android:text="请输入短信内容" /> 39 40 <EditText 41 android:id="@+id/sms_text" 42 android:layout_width="wrap_content" 43 android:layout_height="wrap_content" 44 android:layout_below="@id/textView2" 45 android:layout_marginTop="28dp" 46 android:ems="10" 47 android:inputType="textMultiLine" /> 48 49 <Button 50 android:id="@+id/sms_send" 51 android:layout_width="wrap_content" 52 android:layout_height="wrap_content" 53 android:layout_alignLeft="@+id/editText3" 54 android:layout_below="@id/sms_text" 55 android:layout_marginTop="21dp" 56 android:text="发送" /> 57 58 </RelativeLayout>
在Andriodmanifest.xml中加入权限
1 <uses-sdk 2 android:minSdkVersion="8" 3 android:targetSdkVersion="18" /> 4 <uses-permission android:name="android.permission.SEND_SMS"/>
标签:
原文地址:http://www.cnblogs.com/pmstones/p/4294687.html