Activity的使用

编写Activity的基本步骤:

1.定义Activity类的子类SecondActivity

2.在ActivityManifest.xml配置定义的组件

3.定义布局文件activity_second.xml

4.重写Activity的onCreate(),加载布局文件

启动一个Activtiy

一般启动:

         

带回调启动:


如何携带额外数据

扫描二维码关注公众号,回复: 144842 查看本文章

          intent.putExtra(name,value)

如何获取携带额外数据

       xxx.intent.getxxxExtra(name)

如何得到启动的intent

             Intent getIntent()

结束一个Activity

 一般结束

          finish()

带结果的结束

          setResult(int resultCode , Intent data)

              finish()

Activity生命周期与状态


Activity的TaskStack

在Activity中,系统用taskStack 结构来存储管理启动的Activity对象

一个应用启动,系统就会为其创建一个对应的taskStack来存储并管理该应用的Activity对象

只有最上面的任务栈的栈顶的Activity才能显示在窗口中


Activity的launchMode


standard:

    标准模式,每次调用startActivity()方法就会产生一个新的实例

singleTop

如果已经有一个实例位于Activity栈的顶部,就不会产生新的实例

如果不位于栈顶,就会产生一个新的实例

singleTask

只有一个实例,默认在当前Task中

singleInstance

只有一个实例,创建时会新建一个展位,且此栈中不能有其他对象

——————————————————————————————————————————————

打电话发短信 代码

MainActivity:

 private EditText et_main_num;

     private EditText et_main_sms;
     private Button btn_main_call;

     private Button btn_main_send;

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//初始化控件对象                       页面比较多的按钮设置监听

et_main_num=(EditText) findViewById(R.id.et_main_num);

et_main_sms=(EditText) findViewById(R.id.et_main_sms);

btn_main_call=(Button) findViewById(R.id.btn_main_call);

btn_main_send=(Button) findViewById(R.id.btn_main_send);

//给按钮设置点击监听


btn_main_call.setOnClickListener(onClickListener);

btn_main_send.setOnClickListener(onClickListener);

//设置长按点击监听

btn_main_call.setOnLongClickListener(this);

btn_main_send.setOnLongClickListener(this);

}

//点击监听

private OnClickListener onClickListener=new View.OnClickListener() {

        public void onClick(View v){

if (v==btn_main_call){//打电话

 //1.创建Intent 隐式

String action="android.intent.action.DIAL";

 Intent intent=new Intent(action);

//2.携带数据

 String number=et_main_num.getText().toString().trim();

 intent.setData(Uri.parse("tel:"+number));

//3.启动Activity

startActivity(intent);

}else if(v==btn_main_send){//发短信

Intent intent = new Intent(Intent.ACTION_SENDTO);//创建Intent对象

String number= btn_main_send.getText().toString().trim(); //携带数据

 String sms=et_main_sms.getText().toString().trim();

intent.setData(Uri.parse("smsto:"+number));//设置数据

intent.putExtra("sms_body", sms);

startActivity(intent); //启动Activity

             }

   }

};

//长按点击监听

public boolean onLongClick(View v){

if (v==btn_main_call) {

Intent intent = new Intent(Intent.ACTION_CALL);

String number=et_main_num.getText().toString().trim();

intent.setData(Uri.parse("tel:"+number));

 startActivity(intent);

}else if(v==btn_main_send){

SmsManager smsmanager = SmsManager.getDefault();

String number= btn_main_send.getText().toString().trim();//携带数据

 String sms=et_main_sms.getText().toString().trim();

//发送短信

smsmanager.sendTextMessage(number, null, sms, null, null);

}

return true;//表示此事件已经被消费 ,不会再触发点击事件

        }

}

activit_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<!-- 
   LinearLayout中的   android:orientation="horizontal" 水平排列
                    android:orientation="vertical" 垂直排列
 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tel" />
        <EditText
            android:id="@+id/et_main_num"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
           android:hint="@string/input_num"
           >
        </EditText>


    </LinearLayout>
    
     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/sms" />
        <EditText
            android:id="@+id/et_main_sms"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
           android:hint="@string/input_content"
           >
        </EditText>


    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 
        >
     <Button 
         android:id="@+id/btn_main_call"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:text="@string/call"
         />
     <Button 
         android:id="@+id/btn_main_send"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:text="@string/send"
         />
        
        
        
    </LinearLayout>
    
     
     
</LinearLayout>

Strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>


    <string name="app_name">App02_Call_SMS</string>
    <string name="hello_world">Hello world!</string>
    <string name="tel">电话号码:</string>
    <string name="sms">短信内容:</string>
    <string name="call">打电话</string>
    <string name="send">发短信</string>
    <string name="input_num">请输入号码</string>
    <string name="input_content">请输入短信内容</string>
   


</resources>







猜你喜欢

转载自blog.csdn.net/summerkang/article/details/80207324