zoukankan      html  css  js  c++  java
  • Activity的显式跳转和隐式挑战

    安卓中Activity的跳转几乎是每一个APP都会用到的技术点。而且他的使用时十分简单的。

    这里我们先说一下主要的技术要点:

    1、在清单文件中注册新的Activity

    2、通过意图跳转

     这里我们看一下部分清单文件

    注意,有配置红框的一般就是我们的主Activity,也就是程序的主入口。如果同时配置了两个主入口,则会生成两个快捷图标。一般我们不会这样使用。

    好了,下面直接看代码吧。

    清单文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.actitvtiydemo"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="21" />
        <uses-permission android:name="android.permission.CALL_PHONE"/>
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name="com.example.actitvtiydemo.NextActivity" >
            </activity>
        </application>
    
    </manifest>

     布局文件

    主界面

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        
        tools:context="com.example.actitvtiydemo.MainActivity" >
    
      
        
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="通过显示意图跳转到下一个Activity"
            android:onClick="next"
             />
         <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="通过隐式意图跳转到打电话界面"
            android:onClick="call"
             />
    
    </LinearLayout>

    第二个布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="这是第二个ACtivity" />
    
    </LinearLayout>

    java文件

    package com.example.actitvtiydemo;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        //显示意图,跳转到NextActivity.class
        public void next(View v){
            Intent intent = new Intent(this,NextActivity.class);
            startActivity(intent);
        }
        //隐式意图跳转到电话界面。一般通过设置Action和Data来处理
        /*
         * 隐式意图:就是要匹配Activity在清单文件中匹配了那些内容
         * 比如这打电话他配置了Action和Data,所以我们程序就会
         * 找到批评Action和Data的程序,从而实现跳转
         * 
         * */
        public void call(View v){
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_CALL);
            //注意这里要申请打电话权限
            intent.setData(Uri.parse("tel:10086"));
            startActivity(intent);
            
        }
    
    }

    第一个界面java文件

    package com.example.actitvtiydemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class NextActivity extends Activity{
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.next_layout);
        }
    
    }
  • 相关阅读:
    tif文件导入postgresql
    与你相遇好幸运,使用redis设置定时任务
    用sinopia搭建npm私服
    Postman设置Header不生效问题
    iOS 动态加载LaunchScreen上的图片
    iOS 封装一个带复制功能的UILabel
    ios开发文字排版,段落排版,富文本
    iOS使用hitTest和loadView处理UIView事件传递
    iOS 更改状态栏颜色和隐藏状态栏
    iOS scrollView嵌套tableView的手势冲突解决方案
  • 原文地址:https://www.cnblogs.com/linfenghp/p/5433252.html
Copyright © 2011-2022 走看看