开始学习Android的第一天,草草的写下自己的学习与理解,若有幸能有游客浏览还望多多指点。
一、Android基本概念
1、四大组件:
activity是用和应用程序交互的界面组件或说是控件的容器
intent应用程序间通信组件
service在后台为应用程序提供支持
content provider为应用程序存储和提供数据
2、必备工具:SDK ADT是eclipse ME的插件 模拟器
3、Eclipse ME目录res和asset都为存放资源文件,但res中的资源文件都会在R.java中生成相应的ID;androidmanifest文件是整个应用的配置文件
二、基本组件的创建、编辑、布局
1、Activity的创建、编辑、布局
1、创建activity要点及实例:
1、一个activity就是一个类;
2、该类要继承Activity这个父类;
3、要重写onCreate()这个方法;
示例:
package com.example.sayhello;
import android.app.Activity;
import android.os.Bundle;
/**
* @author Pengwei Wang
* sayhello
* com.example.sayhello
* @version
* Create in 2014-11-1 下午1:01:45
* activity_1.java
*/
public class activity_1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
4、activity在androidmanifest.xml配置文件中注册activity;
5、为activity组件添加空间
2、Activity的生命周期
Activity的声明周期函数:
1、onCreate():第一次调用该activity时调用该方法创建activity;
2、onStrart():activity调用该方法启动;
3、onResume():activity处于可见或得屏幕焦点时调用该方法;
4、onPause():转换到别的activity前调用该方法,保存先前activity的相关数据;
5、onRestart()重新返回之前的activity时调用该方法恢复数据等;
6、onStop():别的activity获得屏幕焦点遮挡住了该activity时调用该方法停止先前的activity;
7、onDestory()系统资源不够用或者activity明确调用了finish()方法时调用该方法销毁该activity。
3、对话框形式的Activity只需要在声明文件AndroidManifest.xml中添加如下代码:android:theme="@android:style/Theme.Dialog
示例:<activity
android:name="com.example.activitychanging.LoginActivity"
android:label="@string/title_activity_login"
android:windowSoftInputMode="adjustResize|stateVisible"
android:theme="@android:style/Theme.Dialog"/>
2、Intent的创建、消息传递
Intent为消息对象,该消息对象包含的信息:
1)component name指定启动的组件名称;
2)action启动组件后的动作;
3)Data传递的数据;
4)Category;
5)Extras额外的键值对;
6)Flags;
在布局文件中的空间中加上android:@+id/name就给该空间添加了id名称name,于是就可以在activity中使用findViewById(R.id.name)找到相应的控件,该函数返回的是view类,view是所有控件的父类,因此需将其强制转换如:(TextView)findViewById(R.id.name)。可通过将Intent对象捆绑在button点击事件上,使得点击buttong就创建Intent对象并执行他的setClass转换activity方法;Intent作为activity的内部类,可以直接使用外部类的成员变量和成员函数。
示例:
package com.example.sayhello;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* @author Amosjun
* sayhello
* com.example.sayhello
* @version
* Create in 2014-11-1 下午1:01:45
* activity_1.java
*/
public class activity_1 extends Activity {
private Button button0_1=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button0_1=(Button)findViewById(R.id.button_1);
button0_1.setOnClickListener(new button0_1OnClickListener());//将监听器类的对象绑定在buttong对象上
}
class button0_1OnClickListener implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO 自动生成的方法存根
Intent intent0_1=new Intent();
intent0_1.putExtra("transValue", "you get the message");
intent0_1.setClass(activity_1.this, MainActivity.class);
activity_1.this.startActivity(intent0_1);
}
}
}
在另一个activity中可以获这个activity传递的intent0_1对象
Intent intent=getIntent();
String getString=intent.getStringExtra("getValue");
复写onClick()方法如下可实现发短信功能:
public void onClick(){
Uri uri=Uri.parse("smsto://18253163389");
Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","the text of the sms");
startActivity();
}
字符串链接如:int+"" 连接符的一端为字符串另外一端也将转换为字符串
FAQ
1、app下载到模拟器中一直异常退出
原因:未能找到