watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjY1MTM4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="208" height="339" alt="">

项目包
src --java源码
gen文件夹 -- 资源文件,改动后自己主动生成
---R.java 中的drawable类相应文件夹里的drawable文件夹。 layout相应
文件夹中的layout文件夹,String相应String文件夹
assets文件夹 存放较大的文件:如视频。音频,字体等 (1G 不会被编译)
res文件夹
---drawable 图片 Res存放资源文件
---layout main.Xm 界面的布局textView显示内容不能改动
---values String.Xml 存放字符串便于国际化
AndroidManifest.xml

2.project结构解析
src:java的源码文件夹(只同意有一个包)
AndroidMainfest.Xml(清单文件, 描写叙述应用程序的构成。组件。权限等信息)
gen/R.java 资源文件,改动后自己主动生成
android:库
assets:静态资源文件
drawable 程序图标
layOut布局文件夹
values:应用程序的String颜色 (String.XML)
classes.dex编译的java二进制码Android平台上的可执行文件 2. Android 的包装功能
android .app 提供高层程序的模型。提供主要的执行环缉
android .content 对设备上的数据进行訪问和公布的类
android .database 通过内容提供浏览和公布
android .graphics 底层的图形库
android .location 定位和相关的服务
android .media 管理多哦中音频,视频的媒体和接口
android .net 提供帮助网络訪问的类
android .os 提供了系统服务,消息的传输 。 IPC机制
android .opengl 提供OPENGL的工具
android .provider:提供訪问android的内容
android .telephony 提供与拨打电话相关的APL交互
android .view 提供基础的用户界面接口框架
android .util 涉及工具性的方法
android .webkit默认浏览器接口
android .widget包括各种UI元素在应用程序的频幕中使用 3. android 程序的核心组件
view 界面视图。组件 UI控制
Intent 意图,支持组件间的通信
Activity:处理界面
IntentReceiver接收信息及事件处理
Service 后台服务
Notification :消息与通知 4.Activity的声明周期
void onCreate(Bundle saveInstancestate )
void onStart ()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy() Myandroid1/res/layout/activity_main.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" /> /Myandroid1/res/values/strings.xml
<string name="app_name">Myandroid1</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Jia You Wangqi!</string>
【Activity】
  一个Activity是一个应用程序组件。提供一个屏幕。用户能够用来交互为了完毕某项任务,比如拨号、拍照、发送email、看地图。每个activity被给予一个窗体。在上面能够绘制用户接口。 窗体通常充满屏幕,但也能够小于屏幕而浮于其他窗体之上。   一个应用程序通常由多个activities组成,他们一般是松耦合关系。通常,一个应用程序中的activity被指定为"main"activity,当第一次启动应用程序的时候呈现给用户的那个activity。 每个activity然后能够启动还有一个activity为了完毕不同的动作。 每一次一个activity启动。前一个activity就停止了,但是系统保留activity在一个栈上(“back stack”)。 当一个新activity启动。它被推送到栈顶,取得用户焦点。Back Stack符合简单“后进先出”原则,所以。当用户完毕当前activity然后点击backbutton,它被弹出栈(而且被摧毁)。然后之前的activity恢复。
  当一个activity因新的activity启动而停止,它被通知这样的状态转变通过activity的生命周期回调函数。有很多回调函数一个activity可能会收到,源于它自己的状态变化-不管系统创建它、停止它、恢复它、摧毁它-而且每个回调提供你完毕适合这个状态的指定工作的机会。比如,当停止的时候,你的activity应该释放不论什么大的对象。比如网络数据库连接。当activity恢复,你能够又一次获得必要的资源和恢复被中断的动作。 这些状态转换都是activity的生命周期的部分。
【Creating an Activity】
  创建一个activity。你必须创建一个Activity的子类(或者一个Activity的子类的子类)。在你的子类中,你须要实现系统回调的回调方法,当activity在它的生命周期的多种状态中转换的时候。比如当activity被创建、停止、恢复或摧毁。两个最重要的回调方法是:
onCreate()
你必须实现这种方法。 系统调用它当创建你的activity的时候。在你的实现中。你应该初始化你的activity的主要的组件。更重要的是,这里就是你必须调用setContentView()来定义activity用户接口而已的地方。
onPause()
系统调用这种方法当用户离开你的activity(尽管不总是意味着activity被摧毁)。这一般是你应该提交不论什么变化,那此将会超越user session而存在的(由于用户可能不再回来)。
  有若干其他生命周期回调函数你应该使用为了提供一个流畅的用户体验,并表操作异常中断会引起你的activity被中断甚至被摧毁。
1、Implementing a user interface
  一个activity的用户接口被一个层次化的视图提供--继承于View类的对象。每个View控制activity窗体中的一个特定矩形区域而且能响应用户交互。比如,一个view可能是个button,初始化动作当用户触摸它的时候。
  Android提供大量提前定义的view,你能够使用来设计和组件你的布局。“Widgets”是一种给屏幕提供可视化(而且交互)元素的view。比如button、文件域、复选框或者不过图像。“Layouts”是继承于ViewGroup的View,提供特殊的布局模型为它的子view,比如线程布局、格子布局或相关性布局。你能够子类化View和ViewGroup类(或者存在的子类)来创建自己的widget和而已而且应用它们到你的activity布局中。
  最普通的方法是定义一个布局使用view加上XML布局文件保存在你的程序资源里。这样。你能够单独维护你的用户接口设计。而与定义activity行为的代码无关。你能够设置布局作为UI使用setContentView(),传递资源布局的资源ID。但是。你也能够创建新Views在你的activity代码,而且创建一个view层次通过插入新Views到ViewGroup。然后使用那个布局通过传递到根ViewGroup给setContentView()。 bundle就是一个映射:一个从字符串值到不同封装类型的映射。 为何是封装类型。不是数值类型?在以下的put方法中能够看到,
它还能够操作bundle自身,bundle本身并非主要的数值类型。是object 的子类.
在activity间数据传递担负重要任务,实际传递的是bundle:

--------------------------------------------------------------------------------------------

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjY1MTM4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="650" height="330" alt="">

在手机的界面上是否显示图标

3-javaAndroid 文件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //设置文件的VIew对象
} 4-拨打电话 <EditText
android:id="@+id/editText1"
android:layout_width="wrap_content" // ----充满内容
android:layout_height="wrap_content"
android:inputType="phone" >
<requestFocus />
</EditText>

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjY1MTM4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="350" height="200" alt="">

--重点提要--Android--Layout中的界面中关于button的设计
    file_parent
    match_parent
    充满窗口
<requestFocus />-----触到脚垫弹出软键盘

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjY1MTM4OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="350" height="100" alt="">

--重点提要--Android--R中的界面中关于加入控件的设计
android:id="@+id/button1"---在R文件里加入ID号
findViewById(R.id.editText1);---寻找ID相应的空间
--重点提要--Android--启动控件中的界面中关于加入控件的设计
//意图:想干一件事==windows start
Intent intent = new Intent();
//推断输入的内容是否为空
if(TextUtils.isEmpty(nummberstr)){ }
----------------------------
android单击事件的写法
1.创建一个内部类实现OnClickListener接口
重写onClick()方法
2.实例化接口 ,匿名内部类
bt_dail.setonClickListener( new OnClickListener(){
CallPhone();
})
3.MainActivity实现接口
在类中重写onClick()方法运行CallPhone()
public void onClick(View v){
switch( v.getId ){
case R.id.bt_cail:
....;break;
default :
.....break;
}
}
4.内部通过反射机制运行程序
android:onClick = "dailButtonClicked"
在MainActivity主程序中加入方法
运行程序 ----源码---- 1.layOut层
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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=".MainActivity" > <EditText
android:id="@+id/Phone_call"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:ems="10"
android:inputType="phone" > <requestFocus />
</EditText> <Button
android:id="@+id/Call_wangqi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/Call_chenyi"
android:layout_alignParentBottom="true"
android:text="@string/call_wan" /> <Button
android:id="@+id/Call_chenyi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Call_wangqi"
android:layout_alignLeft="@+id/Call_linyawei"
android:text="@string/call_ta" /> <Button
android:id="@+id/Call_linyawei"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Call_chenyi"
android:layout_alignLeft="@+id/Call_lengzhenfu"
android:text="@string/call_ya" /> <Button
android:id="@+id/Call_lengzhenfu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Call_linyawei"
android:layout_alignLeft="@+id/Call_JINRUIBIN"
android:text="@string/call_len" /> <Button
android:id="@+id/Call_JINRUIBIN"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Call_lengzhenfu"
android:layout_alignLeft="@+id/Call_Chaibo"
android:text="@string/call_jinrui" /> <Button
android:id="@+id/Call_Chaibo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Call_JINRUIBIN"
android:layout_alignLeft="@+id/Call_other"
android:text="@string/call_caibo" /> <TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Call_other"
android:layout_centerHorizontal="true"
android:text="@string/_friend" /> <Button
android:id="@+id/Call_other"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/Phone_call"
android:layout_below="@+id/Phone_call"
android:layout_marginTop="16dp"
android:text="Call_me" /> <Button
android:id="@+id/Call_xiangshuai"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Call_Chaibo"
android:layout_alignLeft="@+id/Call_Chaibo"
android:text="@string/call_x" />
</RelativeLayout>

2-Strings
<?xml version="1.0" encoding="utf-8"? >
<resources>
<string name="app_name">MyFriend</string>
<string name="action_settings">Settings</string>
<string name="hello_world">MyFriend!</string>
<string name="Call_me">Call_me!</string>
<string name="Call_chaibo">Call_柴博!</string>
<string name="Call_wangqi">Call_王琪!</string>
<string name="Call_JINRUIBIN">Call_靳瑞斌!</string>
<string name="Call_linyawei">Call_廉亚伟!</string>
<string name="Call_lengzhenfu">Call_冷正甫!</string>
<string name="Call_chenyi">Call_陈翼乾!</string>
<string name="call_jinrui">Call_靳瑞斌</string>
<string name="call_caibo">Call_柴博</string>
<string name="call_len">Call_冷正甫</string>
<string name="call_ya">Call_廉亚伟</string>
<string name="call_ta">Call_唐涛</string>
<string name="call_wan">Call_王琪</string>
<string name="_friend">\"Friend>.</string>
<string name="call_x">Call_相帅</string>
</resources> 3-MainActivity
package com.example.myfriend;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private String nummber ="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.Call_other);
Button button2 = (Button)findViewById(R.id.Call_Chaibo);
Button button3 = (Button)findViewById(R.id.Call_chenyi);
Button button4 = (Button)findViewById(R.id.Call_JINRUIBIN);
Button button5= (Button)findViewById(R.id.Call_lengzhenfu);
Button button6 = (Button)findViewById(R.id.Call_linyawei);
Button button7 = (Button)findViewById(R.id.Call_wangqi);
Button button8 = (Button)findViewById(R.id.Call_xiangshuai);
button1.setOnClickListener(MainActivity.this);
button2.setOnClickListener(MainActivity.this);
button3.setOnClickListener(MainActivity.this);
button4.setOnClickListener(MainActivity.this);
button5.setOnClickListener(MainActivity.this);
button6.setOnClickListener(MainActivity.this);
button7.setOnClickListener(MainActivity.this);
button8.setOnClickListener(MainActivity.this);
}
@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 void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.Call_other:
EditText text = (EditText)findViewById(R.id.Phone_call);
this.nummber = text.getText().toString();
CallPhone(this.nummber);
break;
case R.id.Call_Chaibo:
this.nummber ="656588";
Toast.makeText(MainActivity.this, "柴博"+this.nummber,0).show();
CallPhone(this.nummber);
break;
case R.id.Call_wangqi:
this.nummber ="652008";
Toast.makeText(MainActivity.this, "王琪"+this.nummber,0).show();
CallPhone(this.nummber);
break;
case R.id.Call_JINRUIBIN:
this.nummber ="652019";
Toast.makeText(MainActivity.this, "靳瑞斌"+this.nummber,0).show();
CallPhone(this.nummber);
break;
case R.id.Call_lengzhenfu:
this.nummber ="656181";
Toast.makeText(MainActivity.this, "正甫"+this.nummber,0).show();
CallPhone(this.nummber);
break;
case R.id.Call_linyawei:
this.nummber ="656587";
Toast.makeText(MainActivity.this, "亚伟"+this.nummber,0).show();
CallPhone(this.nummber);
break;
case R.id.Call_chenyi:
Toast.makeText(MainActivity.this, "-->"+this.nummber,0).show();
this.nummber ="652652";
CallPhone(this.nummber);
break;
case R.id.Call_xiangshuai:
Toast.makeText(MainActivity.this, "-->"+this.nummber,0).show();
this.nummber ="656202";
CallPhone(this.nummber);
break;
default:
Toast.makeText(MainActivity.this, "ppp",0).show();
}
}
private boolean CallPhone(String number){
if(TextUtils.isEmpty(nummber)){
Toast.makeText(MainActivity.this, "电话号码不能为空!", 0).show();
return false;
}
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+nummber));
startActivity(intent);
return true;
}
}
--重点提要--Android--Layout中的界面中关于button的设计
    file_parent
    match_parent
    充满窗口
<requestFocus />-----触摸板弹出软键盘

Android-1-电话拨号程序的更多相关文章

  1. Android入门——电话拨号器和4种点击事件

    关于HelloWorld为,电话拨号程序还AndroidA入门demo,从这个样例我们要理清楚做安卓项目的思路. 大体分为三步: 1.理解需求,理清思路 2.设计UI 3.代码实现 电话拨号器 1.  ...

  2. android之电话拨号器

    在android入门的案例中,除了HelloWorld这个经典案例,还有一个电话拨号器需要掌握,现在我就来个电话拨号器的示范,毕竟大牛也是从菜鸟进化而来的. 首先你应该知道自己要设置怎样的UI,然后创 ...

  3. Android实战--电话拨号器

    今天跟着黑马视频建立一个android app--电话拨号器 首先新建一个android项目 activity_main_xml中的代码如下: <RelativeLayout xmlns:and ...

  4. Android入门——电话拨号器和四种点击事件

    相对于HelloWorld来说,电话拨号器也是Android的一个入门demo,从这个样例我们要理清楚做安卓项目的思路. 大体分为三步: 1.理解需求,理清思路 2.设计UI 3.代码实现 电话拨号器 ...

  5. Android之电话拨号和短信

    拨打电话号码,需要添加权限设置,在安装的应用程序信息中可以看到此权限信息Intent doSth=new Intent();//意图:你想做什么呢?doSth.setAction(Intent.ACT ...

  6. Android项目——电话拨号器

    因为应用要使用手机的电话服务,所以要在清单文件AndroidManifest.xml中添加电话服务权限: <?xml version="1.0" encoding=" ...

  7. 使用Android拨打电话功能

    1.要使用Android系统中的电话拨号功能,首先必须在AndroidManifest.xml功能清单中加入允许拨打电话的权限: <uses-permission android:name=&q ...

  8. 初识安卓小程序(Android电话拨号器)

    首先,先创建一个安卓项目(我的版本号是4.4.2的),名字为"电话拨号器",创建的时候点击"clipart",如图: 然后在res目录下找到layout目录,找 ...

  9. Mono for Android—初体验之“电话拨号器”

    1.Main.axml文件: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmln ...

  10. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

随机推荐

  1. js遍历对象的数组

    遍历数组: 1.js关键for遍历 2.jquery提供each功能 ----------------------------------- $.each(array, function(){     ...

  2. shell程序设计(转)

    1.shell脚本的基本概念: (1)Shell执行的是称为shell程序,这些程序通常被称为脚本. (2)Shell是一个用户和系统间接口的程序,它允许用户向操作系统输入需要执行的命令. (3)sh ...

  3. HDU 4350 Card

    打表找规律,比赛应付了一下,其实还可以把内存再优化一半掉,下面的0都是手动填充的,可以优化掉 题意: T个测试数据 下面52个数字表示 从栈顶到栈底的52个数 n l r表示 从栈顶下数 [l,r] ...

  4. 调用函数的ALV、面向对象的ALV设置带选择列

    这个就是通过对应的选择列,实现对ALV数据的选择,在调用函数的ALV和面向对象的ALV实现方法存在差异,下面讲两者的方法:1)调用函数的ALV.   通过 SLIS_LAYOUT_ALV-BOX_FI ...

  5. Python pip 安装包

    Python 第三方包可以使用pip 更容易地安装,和管理 pip 的下载地址 https://pypi.python.org/pypi/pip/ pip的使用以及相关文档参考 https://pip ...

  6. 一些窗口API函数,比如SetForegroundWindow,SwitchToThisWindow

    SetForegroundWindowSwitchToThisWindow procedure TApplication.BringToFront;varTopWindow: HWnd;beginif ...

  7. Python金融应用编程(数据分析、定价与量化投资)

    近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域.所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技 ...

  8. boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转

    一:什么是st_asio_wrapper它是一个c/s网络编程框架,基于对boost.asio的包装(最低在boost-1.49.0上调试过),目的是快速的构建一个c/s系统: 二:st_asio_w ...

  9. RGB HSV HLS三种色彩模式转换(C语言实现)

    Android项目上处理图像的代码(注释全部去掉) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  10. C#检查foreach为null判断

    1.foreach遍历列表或数组时,如果list或数组为null,就会报错,如下图: 2.不知道微软封装foreach的为什么不先检查要遍历的对象是否为null,这样就导致,我们在写代码时,遍历列表时 ...