标签:tin private context click override eth 内部类 method 手机号
一、视频笔记:
1.
当用户点击应用图标——>
首先创建一个应用进程——>
再创建一个主线程——>
主线程中实例化Activity【注:OS会把应用有关的信息(Context)存放进Activity】——>
调用onCreate()【注:OS调用,而不是用户调用,一个生命周期内只被调用一次】
2.单位的使用
文字:sp
非文字:dp(=dip)
3.
开发软件时在一个项目中首先将界面(.xml)的内容写好。
二、进行实践:
1.界面:
最终要实现的布局:
activity_main.xml中:
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:orientation="vertical" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <TextView 7 android:layout_width="match_parent" 8 android:layout_height="wrap_content" 9 android:text="@string/mobile" /> 10 11 <EditText 12 android:layout_width="match_parent" 13 android:layout_height="wrap_content" 14 android:id="@+id/mobile" 15 /> 16 17 <Button 18 android:layout_width="wrap_content" 19 android:layout_height="wrap_content" 20 android:text="@string/button" 21 android:id="@+id/button" 22 /> 23 24 </LinearLayout>
string.xml中(为了更加国际化):
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">电话拨号器</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="mobile">请输入手机号</string> <string name="button">拨号</string> </resources>
2.清单文件中申请使用权限:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.phone" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!--权限:google为保护用户的信息安全和隐私数据,当使用到与此有关的数据时, 必须申请相关权限,在软件安装时会出现权限提示 --> <uses-permission android:name="android.permission.CALL_PHONE"/> </manifest>
3.代码实现:
MainActivity.java:
package com.example.phone; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText mobileText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mobileText = (EditText)findViewById(R.id.mobile); Button button = (Button)this.findViewById(R.id.button); button.setOnClickListener(new ButtonClickListener());//或者使用匿名内部类:new实现了接口的类对象 } //内部类:大量使用,提交软件的加载(到虚拟机的)速度 private final class ButtonClickListener implements View.OnClickListener { @Override public void onClick(View v) {//输入参数是当前被点击的按钮对象 // TODO Auto-generated method stub //每次点击拨号,下面一句都会使用findViewById查找一次资源id,造成耗时 // EditText mobileText = (EditText)findViewById(R.id.mobile); String number = mobileText.getText().toString(); Intent intent = new Intent(); intent.setAction("android.intent.action.CALL"); // intent.addCategory("android.intent.category.DEFAULT");//1代码 intent.setData(Uri.parse("tel:"+number)); //将意图传给OS,由OS发现匹配的activity,进行激活 startActivity(intent);//注意:方法内部会自动为Intent添加android.intent.category.DEFAULT,所以1代码注释不要 } } }
标签:tin private context click override eth 内部类 method 手机号
原文地址:http://www.cnblogs.com/ttzm/p/7222478.html