在Android中, 启动一个Activity有时需要总是创建一个新对象, 有时需要复用已有的对象, 可以通过在配置activity时通过launchMode属性指定
launchMode属性值(4个)为:
standard:
标准模式,每次调用startActivity()方法就会产生一个新的实例。
singleTop:
如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例;如果不位于栈顶,会产生一个新的实例。(自己不能打开自己,,,,,其他的可以打开他)
singleTask:
只有一个实例, 默认在当前Task中
singleInstance:
只有一个实例, 创建时会新建一个栈, 且此栈中不能有其它对象,(在那个位置设置那个,他就会创建一个栈,当此页面打开新的页面时,会在第一个栈的后面,第一个栈显示完就会显示第二个栈)
线性布局嵌套垂直和水平
android:orientation="vertical":垂直
android:orientation="horizontal"水平
短信电话
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.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;//表示此事件已经被消费了,不会再触发点击事件
}
}
自定义吐司
新建一个android的Activity
public MyToast(Context context,String prompt) {
Toast toast = new Toast(context);
toast.setDuration(Toast.LENGTH_SHORT);
View view = View.inflate(context, R.layout.activity_my_toast,null);
TextView tvPrompt = (TextView)view.findViewById(R.id.tv_msg);
tvPrompt.setText(prompt);
toast.setView(view);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
自动生成的Activity编写吐司的样式