声明:本人是新入门的菜鸟。这个是我学安卓第一课。从黑马程序员的视频学来的。哈哈。好像无意间给黑马做了广告。因为我的视频资源也是网上找来的。所以如果有朋友需要,就在博客下留言。我会用网盘发给你的。一套有60G。。。我希望我能看完后找到一份安卓开发的工作。
顺便说一下,现在Android Studio已经能不错了。很多做安卓开发的同学也跟我说用了Android Studio后就在也回不去Eclipse了。但是我还是喜欢Eclipse,比较小,而且视频教程用的是Eclipse,所以我不用AS了。
好了,废话少说。我们来说一说我第一个程序吧。新建工程什么的就不说了。虽然是入门第一个Demo,但是想配置环境,安装IDE这些,相信大家在学习java基础的时候已经学会了。
我们先说一说这个第一个Demo的功能。
功能:用户输入电话号码,点击按钮进行拨打
用到的控件:TextView,Button,EidtText
技术要点:这个看代码吧,主要的点我会注释的
首先看界面截图
然后看代码,代码都是很简单的,细节部分我有用注释讲解,希望对那些比我学的进度慢一点的朋友有帮助。。我们一起学习。。奋斗!!
首先是布局文件 activity_main.xml
<!-- 用线性布局,一般默认建的布局文件是相对布局,改为线性布局 通过android:orientation="vertical"设置为垂直布局 --> <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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.myphone.MainActivity" > <!-- 布局文件建议字符等用@+id/引用 这样一是方便以后维护,二是如果要做国际化,不用修改代码 --> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tips" /> <!-- android:inputType="phone" 控制输入类型,限制为电话类型(1-9,*,#) android:maxLines="1" 控制最大行数 --> <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" android:maxLines="1" /> <Button android:id="@+id/bt_call" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/call" /> </LinearLayout>
下面是清单文件 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <!-- android:versionCode="1" 系统通过这个属性来判断程序版本,只能高版本覆盖低版本 android:versionName="1.0"是给用户看的,系统不用这个做为判断 package="com.example.myphone"系统通过包名来判断是不是同一个程序 --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myphone" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <!-- 这程序的主要要点之一,添加打电话的权限,不然程序会奔溃 --> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission /> <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> </manifest>
最后看 MainActivity.java
package com.example.myphone; 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.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { //定义一些要用到的变量 private Button button; private EditText editText; String numberString ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局文件 setContentView(R.layout.activity_main); //通过ID取得布局文件的资源 button = (Button) findViewById(R.id.bt_call); editText = (EditText) findViewById(R.id.edit); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //拿到用户拨打的号码 numberString = editText.getText().toString(); //创建意图 Intent intent = new Intent(); //将要打电话的意图封装到intent里面 intent.setAction(Intent.ACTION_CALL); //传入号码到intent intent.setData(Uri.parse("tel:"+numberString)); //启动意图(活动界面) 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; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
第一个安卓Demo就这样完成了。是不是很简单。哈哈。下一篇我们说一下上面提过的 @+id/引用资源 和权限问题。
时间: 2024-10-05 04:26:04