现在的位置: 首页 > 综合 > 正文

Android短信助手

2017年03月28日 ⁄ 综合 ⁄ 共 5046字 ⁄ 字号 评论关闭

项目源代码下载地址:http://download.csdn.net/detail/itjavawfc/8177841

这个小程序学习到的内容:

1)进一步理解Intent   2开启activity获取返回值
  3)Adapter的运用ListView的点击事件

4)Intent发送数据、Activity关闭返回到上一个Activity等知识。

小程序需求:1)单击选择短息就可以看到备用短息页面,点击其中一条短息后自动将短息填到短息框中

                 2)单击选择电话号码就可以看到备用电话号码页面,点击其中一条号码后自动将号码填写到号码输入框中

                 3)实现发送短信功能


代码如下:

public class MainActivity extends Activity {
	private EditText et_content;
	private EditText et_number;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_content=(EditText) findViewById(R.id.et_content);
	    et_number=(EditText) findViewById(R.id.et_number);
	}
	public void selectSms(View view) {
		Intent intent=new Intent(this,ListSmsActivity.class);
		//startActivity(intent);
		//第二个参数resquestCode请求码
		startActivityForResult(intent, 0);
	}
	public void  selectNum(View view){
		Intent intent=new Intent(this,ListNumberActivity.class);
		startActivityForResult(intent,1);
	}
	//当开启的Activity关闭结束时
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if(data!=null){
        	  //将回传的数据取出来
        	  String smsinfo=data.getStringExtra("smsinfo");
        	  if(resultCode==0){
        		//设置短信内容
            	  et_content.setText(smsinfo); 
        	  }else if(resultCode==1){
        		//设置短信内容
            	  et_number.setText(smsinfo);
        	  }
          }
		super.onActivityResult(requestCode, resultCode, data);
	}
	 
	public void sendSms(View view){
		String content=et_content.getText().toString();
		String number=et_number.getText().toString();
		SmsManager.getDefault().sendTextMessage(number, null, content, null, null);
		Toast.makeText(this, "发送成功", 0).show();
	}
}

对应的布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.duanxin.MainActivity" >
     <EditText
        android:id="@+id/et_number"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入电话号码"        
        />
    <EditText 
        android:id="@+id/et_content"
        android:lines="5"
        android:inputType="textMultiLine"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="请输入电话号码"
        />
    <Button 
        android:onClick="selectSms"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="选择短信"
        />
    <Button 
        android:onClick="selectNum"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="选择电话号码"
        />
     <Button 
        android:onClick="sendSms"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="发送短信"
        />
</LinearLayout>


短信的Activity:

public class ListSmsActivity extends Activity {
	private ListView lv;
 	private String[] objects={
			"晚风徐徐,星光灿烂,月光皎洁,这一切是那么的美好。在这个美丽的夜晚,祝你美梦连连!",
			"每当夜晚降临的时候,天边的星星是我关注你的眼睛,月儿弯弯,它送去我最真心的祝福:晚安,做个好梦哦。",
			"关闭灯光,让心平静,呼吸均匀,完全放松,无牵无挂,反复默念,睡眠心法。愿我的支言片语可以让你晚安,美梦!",
			"满天繁星,是我每天为你守望的眼睛;万家灯火,是我每夜为你守候的执着,守望的心,守候的情,只望你拥有一个美丽夜晚。",
			"想你的时候最充实,念你的时候最逍遥,牵挂老是跟你跑,问候把你最先到,愿你日日乐陶陶,祝你夜夜梦美好;晚安。"
			};
	 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sms);
		lv=(ListView) findViewById(R.id.lv);
		//理解Adapter每个参数的含义:this【上下文】,R.layout.sms_item【布局文件】,R.id.tv_info【你要展示的View】,objects【展示的数据项】
		lv.setAdapter(new ArrayAdapter<String>(this, R.layout.sms_item, R.id.tv_info, objects));
		//添加点击事件
		lv.setOnItemClickListener(new OnItemClickListener(){
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				//根据数据项选择的位置珀斯tion取得单击的那条数据
				String smsinfo=objects[position];
				Intent data=new Intent();
				data.putExtra("smsinfo", smsinfo);
				//设置数据,第一个参数为结果码
				setResult(0,data);
				//调用该方法,activity就关闭了,并回传数据
				finish();
			}
		});
		
	}
}

其布局件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ListView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lv"
        ></ListView>
</LinearLayout>

对应的AdapterView的文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:id="@+id/tv_info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@android:drawable/star_big_on"
        android:gravity="center_vertical"
        android:text="我爱你"
        />
</LinearLayout>

电话号码的Activity:

public class ListNumberActivity extends Activity {
	private ListView lv;
 	private String[] objects={
           "23125",
           "456451",
           "3153",
           "513531",
           "2135484563"
 	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sms);
		lv=(ListView) findViewById(R.id.lv);
		lv.setAdapter(new ArrayAdapter<String>(this, R.layout.sms_item, R.id.tv_info, objects));
		lv.setOnItemClickListener(new OnItemClickListener(){
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				String smsinfo=objects[position];
				Intent data=new Intent();
				data.putExtra("smsinfo", smsinfo);
				//设置数据
				setResult(1,data);
				//调用该方法,activity就关闭了,并回传数据
				finish();
			}
		});
	}
}

对应的布局文件和发送短信的文件一模一样

最终实现效果:

            
















       


抱歉!评论已关闭.