线性布局嵌套垂直和水平............................................................................................................
android:orientation="vertical":垂直
android:orientation="horizontal"水平
launchMode属性值(4个)为.........................................................................................................
standard:
标准模式,每次调用startActivity()方法就会产生一个新的实例。
singleTop:
如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例;如果不位于栈顶,会产生一个新的实例。(自己不能打开自己,,,,,其他的可以打开他)
singleTask:
只有一个实例, 默认在当前Task中
singleInstance:
只有一个实例, 创建时会新建一个栈, 且此栈中不能有其它对象,(在那个位置设置那个,他就会创建一个栈,当此页面打开新的页面时,会在第一个栈的后面,第一个栈显示完就会显示第二个栈)
短信电话..................................................................................................................................
public class MainActivity extends Activity implements OnLongClickListener {
private EditText EditText01;
private EditText et_main_num;
private Button button1;
private Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化试图对象View(小零件)
EditText01=(EditText) findViewById(R.id.EditText01);
et_main_num=(EditText) findViewById(R.id.et_main_num);
button1=(Button) findViewById(R.id.button1);
button2=(Button) findViewById(R.id.button2);
//给按钮设置点击监听
button1.setOnClickListener(OnClickListener);//第四种点击
button2.setOnClickListener(OnClickListener);
button1.setOnLongClickListener(this);
button2.setOnLongClickListener(this);
}
private android.view.View.OnClickListener OnClickListener=new View.OnClickListener() {
//点击监听
@SuppressLint("ShowToast")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v==button1){
Toast.makeText(MainActivity.this, "点击打电话", 0).show();
//创建隐式意图
String info=Intent.ACTION_DIAL;
Intent intent = new Intent(info);
// 2.携带数据
String trim = EditText01.getText().toString().trim();
// intent.putExtra(info, Uri.parse("tel:"+trim));键值对储存,因不知道体统的接受电话
intent.setData(Uri.parse("tel:"+trim));
// 3.启动打电话界面
startActivity(intent);
}else if(v==button2){
Toast.makeText(MainActivity.this, "点击发短信", 0).show();
}
}
};
@Override
//长安的监听
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if(v==button1){
// 1.创建一个Intent(隐式)
Intent intent = new Intent(Intent.ACTION_CALL);
// 2.携带数据
String trim = EditText01.getText().toString().trim();
intent.setData(Uri.parse("tel:"+trim));
// 3.启动打电话界面
startActivity(intent);
Toast.makeText(MainActivity.this, "长安打电话", 0).show();
}else if(v==button2){
Toast.makeText(MainActivity.this, "长安发短信", 0).show();
}
return true;//表示此事件已经被消费了,不会再触发点击事件
}
}
自定义吐司...........................................................................................................................
package com.example.test05_component;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class Tusi extends Activity {
public Tusi(Context context,String prompt) {
Toast toast = new Toast(context);
toast.setDuration(Toast.LENGTH_SHORT);
View view = View.inflate(context, R.layout.activity_tusi,null);
TextView tvPrompt = (TextView)view.findViewById(R.id.tv_msg);
tvPrompt.setText(prompt);
toast.setView(view);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
页面布局补充.....................................
android:id="@+id/tv_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="86dp"
android:background="#999999"
android:padding="15dp"
android:textColor="#666666"
android:textSize="25sp" />
1.Activity 的理解。。。。。。。。。。。。。。
1).活动四大应用组件之一
2 作用: 提供能让用户操作并与之交互的界面
3) 组件的特点:
它的类必须实现特定接口或继承特定类需要在配置文件中配置其全类名
它的对象不是通过new来创建的,而是系统自动创建的解它的对象具有一定的生命周期,它的类中有对应的生命周期回调方法
4).哪些地方用到反射技术: (Android)
a.配置文件中配置全类名b. 布局文件定义标签
C. 显式意图: Intent (Context context,Class c)
2.lntent的理解..........................................................
1.意图:信使(Activity,Service,BroadcastReceiver三个组件间通信的信使)
2.分类:
显示:操作当前应用自己的组件
隐式:操作其它应用的组件
3.Iitent的使用............................................................
1.创建:
显示:Intent(Context context,Class astivityClass)
隐式:Intent(String action)//与
2.携带数据......................................................
额外:putExtra(String key,Xxx value)内部用map容器保存
有特定前缀:塞他Data(Uri data)//tel:123123,smsto:123123
3.读取数据......................................................
额外:Xxx getXxxExtra(String key)
有特定前缀:Uri getData()
1.Activiy界面的状态.................................................
运行状态:可见也可操作
暂停状态:可见但不可操作
停止状态:不可见但对象存在
死亡状态:对象不存在
2.Activity的生命周期历程:
不存在 启动 成为垃圾
oncreate ondestory
停止 不可见,存在
onrestart
暂停 可见 不可操作
onresume onPause 运行 可见可操作
oncreate:加载布局和初始话的工作
ongresume:只有经历此方法,才能进入运行状态
ondestory:在对象死亡之前做一些收尾后清理的工作
taskstack和lauchmode
taskstack:在Android中系统用task stack(back stack)结构来存褚管理启动的activity对象
2.launchMode :sandard 标准模式,每次调用startActivity方法就会产生一个新的实列
singtop:如果已经有一个实列位于activity的顶部是 就不产生新的实列
singletask:只有一个实列默认在当前task中
singleinstance:只有一个实列,创建时会创建一个,
设置监听的四种方式:
1layout中:Android:onclick=方法名
activity中:public void 方法名(view v)
2view.setonclicklistenter(new view.onclickistener)
3.view:viewoncliklistener(this)
4.viewsetonclisetenner(onlickstenner成员变量)