第二十二天 啓動Activity和Intent

FrameLayout

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:layout_width="243dp"
        android:layout_height="210dp"
        android:id="@+id/button2"
        android:layout_gravity="left|top" />
    <Button
        android:layout_width="193dp"
        android:layout_height="152dp"
        android:id="@+id/button3"
        android:layout_gravity="left|top" />
</FrameLayout>

這裏寫圖片描述

TableLayout

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="0,1,2"//下標從0開始
    android:shrinkColumns="3,4">//可伸縮的列
<TableRow>
    <Button android:text="1"/>
    <Button android:text="2"/>
    <Button android:text="3"/>
</TableRow>
    <TableRow>
        <Button android:text="11"/>
        <Button android:text="22"/>
        <Button android:text="33"/>
    </TableRow>
    <TableRow>
        <Button android:text="111"/>
        <Button android:text="222"/>
        <Button android:text="333"/>
    </TableRow>
</TableLayout>

這裏寫圖片描述
這裏寫圖片描述

TableLayout的屬性:

strechColumns 佔用剩餘空間(設置可伸展的列)
collapseColumns 隱藏某一列
shrinkColumns 設置可收縮的列

visibility(在界面中)

 android:visibility="gone"//不顯示,不佔空間
 android:visibility="visible"//顯示
 android:visibility="invisible"//不顯示,但佔空間

啓動Activity

1.直接啓動Activity

Intent intent=new Intent(MainActivity.this,SecondActivity.class)
startActivity(intent);

2.帶有返回值的啓動方式
(1)第一個界面調用startActivityForResult(intent,requestCode); 例:startActivityForResult(intent,0x23)
(2)第二個界面先調用getIntent()得到啓動的intent,在關閉第二個界面前先封裝數據intent.putExtra(“secondbackdata”,editText().toString());
(3)設置resultCode :setResult(RESULT_OK,intent)
(4)關閉第二個界面:SecondActivity.this.finish()
(5)第一個界面準備接受數據:
重寫onActivityResult(requestCode,resultCode,Intent data);
判斷resultCode;
然後從data中取出數據

MainActivity中
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK){
            String s=data.getStringExtra("key");
            textView.setText(s);
        }
    }
SecondActivity中
button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               intent= getIntent();
                intent.putExtra("key", editText.getText().toString());
                setResult(RESULT_OK,intent);
                SecondActivity.this.finish();

            }
        });

這裏寫圖片描述

去掉標題、信息欄,必須寫在setContentview()前面

this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息欄
screenORientation="portrait"(設置豎屏)
screenOrientation="landscape"(設置橫屏)

Android四大組件(五大組件Intent)

Activity、Service、ContentProvider、BroadcastReceive

Intent:Android通訊的

屬性:action、component、data、category、type、extra

action(撥打電話、發信息、打開網頁)
package com.example.administrator.myapplication;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
 * Created by Administrator on 2015/8/19.
 */
public class IntentActivity extends Activity {
    private Button mButtonPhone;
    private Button mButtonCall;
    private Button mButtonSms;
    private Button mButtonWeb;
    private Button mButtonHide;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intent_layout);
        mButtonPhone=(Button)findViewById(R.id.button_phone);
        mButtonPhone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.setAction(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel:18500292306"));
                startActivity(intent);
            }
        });
        mButtonCall=(Button)findViewById(R.id.button_call);
        mButtonCall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_CALL);
                intent.setData(Uri.parse("tel:18500292306"));
                startActivity(intent);
            }
        });
        mButtonSms=(Button)findViewById(R.id.button_sms);
        mButtonSms.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(Intent.ACTION_SENDTO);          intent.setData(Uri.parse("smsto:18500292306"));
                intent.putExtra("sms_body","The SMS Text");
                startActivity(intent);
            }
        });
        mButtonWeb=(Button)findViewById(R.id.button_web);
        mButtonWeb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(Intent.ACTION_VIEW);             intent.setData(Uri.parse("http://www.baidu.com"));
                startActivity(intent);
            }
        });
        //隱式啓動
        mButtonHide=(Button)findViewById(R.id.button_hide);
        mButtonHide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent("com.example.administrator.myapplication");
                startActivity(intent);
            }
        });
    }
}

這裏寫圖片描述
這裏寫圖片描述

隱式啓動Activity
<intent-filter>
    <action android:name="com.example.administrator.myapplication"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
 mButton5=(Button)findViewById(R.id.button_hide);
        mButton5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent("com.example.administrator.myapplication");
                startActivity(intent);
            }
        });

這裏寫圖片描述

隱式啓動MainActivity並獲取信息
IntentActivity中:
 mButtonHide=(Button)findViewById(R.id.button_hide);
 mEditText=(EditText)findViewById(R.id.editText);
 mButtonHide.setOnClickListener(new View.OnClickListener() {
       @Override
        public void onClick(View v) {
        Intent intent=new Intent("com.example.administrator.myapplication");
        String s=mEditText.getText().toString();
        intent.putExtra("key",s);
        startActivity(intent);
        }
 });
MainActivity中:
textView=(TextView)findViewById(R.id.textView);
intent=getIntent();
textView.setText(intent.getStringExtra("key"));

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章