安卓笔记1——入门介绍及拨打电话和发送短信案例

 

现在开始接触安卓开发。以后后同步发出对应笔记。老规矩,用一张图来介绍今天的内容。

图片看不清的话可以右键新窗口打开。

技术分享

.开发工具


· Eclipse + ADT(Android Developer Tools)


· Android Studio


· SDK (软件开发环境, Android调试工具, 模拟等)


.SDK目录介绍


· add-ons :(额外开发资料, google地图资源)

· build-tools : 编译工具目录

· docs : 离线版开发文档

· extras : 向下兼容的jar包, intel工具

· platforms : Android开发版本平台jar包

· platform-tools : 平台开发工具(adb)

· sources : 开发平台源码

· system-images : 模拟器镜像文件

· tools : 开发者常用工具


.Android 常用屏幕分辨率


· VGA: 480 x 640 标准大小

· HVGA: 320 x 480 一半大小

· QVGA: 240 x 320 四分之一

· WVGA: 480 x 800

· FWVGA: 480 x 854


.开发工具


1,ADB (Android debug bridge) Android调试桥


↓↓↓↓↓在dos命令行输入以下命令可以得到的结果↓↓↓↓↓↓↓

· adb devices 查看当前已连接的设备

· adb start-server 开启 adb 服务

· adb kill-server 杀死 adb 服务

· adb shell 进入Android控制台(执行Linux命令)exit退出

· adb logcat 打印日志信息

· adb install xxx.apk : 安装应用

· adb uninstall 包名 : 根据包名卸载应用

· adb push hiahia.txt /sdcard/hiahia.txt : 上传文件

· adb pull /sdcard/hiahia.txt . : 下拉文件


2,端口占用


adb -s emulator-5554 :指定设备

adb可能因为360, 金山卫士, 腾讯QQ影响无法使用

端口5037被占用

netstat -ano | find "5037" 查看谁占用端口

杀掉进程kill pid


.R文件报错处理:


1 不能以关键字命名

2 资源不能以数字开头

布局文件内部有错误, 有小红叉


.点击事件的4种写法



4 定义一个内部类实现OnClickListener接口

5 使用匿名内部类对象实现

6 使用当前类,继承接口

7 定义xml属性

o 定义xml的属性android:onClick="call"

o 在代码里写方法 public void call(View view){}


.Android常见布局


1,LinearLayout 线性布局

o 控件一个接一个排列

2,RelativeLayout 相对布局

o 控件之间以相对位置排列

3,FrameLayout 帧布局

o 一层盖一层

4,AbsoluteLayout 绝对布局

o 通过x, y指定绝对位置.

5.TableLayout 表格布局

o 类似Html表格

 

,入门案例


1,拨打电话


 

public class MainActivity extends Activity {
	EditText phonenum ;
	Button btn_call;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //1获取控件
        phonenum =  (EditText) this.findViewById(R.id.et_phonenum);
        btn_call = (Button) this.findViewById(R.id.btn_callphone);
        
        //2设置点击监听事件
        btn_call.setOnClickListener(new OnClickListener() {
			@SuppressWarnings("static-access")
			@Override
			public void onClick(View v) {
				String num = phonenum.getText().toString();
				//3拨打电话
					//a,获取意图
				Intent intent = new Intent();
					//b,设置意图内容:拨打电话的uri
				intent.setData(Uri.parse("tel:"+num));
					//c,设置意图动作:拨打电话
				intent.setAction(intent.ACTION_CALL);
				//intent.setAction(Intent.ACTION_CALL_BUTTON);
					//d,跳转到电话出界面
					//开始活动
				startActivity(intent);
				
			}
		});
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}


2.发送短信


 

public class MainActivity extends Activity {
	EditText et_phonenum;
	EditText et_smsText;
	Button btn_sent;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 1获取界面组件
		et_phonenum = (EditText) this.findViewById(R.id.et_callnum);
		et_smsText = (EditText) this.findViewById(R.id.et_smsText);
		btn_sent = (Button) this.findViewById(R.id.btn_sent);

		// 2,设置点击事件
		btn_sent.setOnClickListener(new sendSmsListerer());
	}

	
	/**
	 * 点击发送短信按钮
	 */
	class sendSmsListerer implements OnClickListener {
		@Override
		public void onClick(View v) {
			String num = et_phonenum.getText().toString();
			String text = et_smsText.getText().toString();
			
			
			/*方法一:使用意图
			Intent intent = new Intent();
			intent.setData(Uri.parse("smsto:" + num));
			intent.setAction(intent.ACTION_SENDTO);
			intent.putExtra("sms_body", text);
			startActivity(intent);*/
			
			//方法二:使用短信管理器
			//获取短信发送管理器
			SmsManager smsmanager = SmsManager.getDefault();
			smsmanager.sendTextMessage(
					num,//要发送的地址
					null,//短信服务中心,现在一般都不写
					text,//文本内容
					null,
					null);//对方接受成功通知
			Toast.makeText(MainActivity.this, "短z信发送完成", Toast.LENGTH_LONG).show();
			//Toast.makeText(this, "短信发送完成", Toast.LENGTH_LONG).show();//发送成功通知
		}
		


	}
}

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。