[android] 显示意图激活另外一个activity

可以使用跳转的方式类似javaweb来实现界面转换

显示意图就是必须要指定开启组件的具体信息,包名,组件名,组件的class

 

新建一个类TwoActivity ,继承Activity类,重写onCreate()方法,这个方法是界面开启的时候自动调用,在这个函数里面大部分进行初始化的操作,比如调用界面和获取控件等

 

activtity是系统的重要组件,系统要想找到这个activity,就必须在清单文件里面进行配置

新加<Activity />节点,

设置名称android:name=”包名.类名

设置意图过滤器 <intent-filter> action的名称是android.intent.action.MAIN category的名称是android.intent.category.LAUNCHER的时候会创建快捷图标

设置图标 android:icon=””

设置标题 android:label=””

android系统里面有一些其实是一个应用,创建了不同的图标进入不同的界面。

 

在第一个Activity里面点击按钮跳转过来

获取Intent对象,通过new出来

调用Intent对象的setClassName(packageContext,className)方法,设置类名,参数:上下文,String类型的类名 全名称含包名

调用Activity对象的startActivity(intent)方法,开启一个Activity,参数:Intent对象

 

上面的方式有点麻烦,谷歌提供了稍微方便的方式

获取Intent对象,通过new Intent(packageContext,cls),参数:上下文,class字节码

调用Acitivity对象的startActiity(intent)方法

 

激活系统应该程序的界面

如何获取系统应用的界面全名称呢,通过清空logcat,模拟器上启动系统应用,查看日志,找到ActivityManager打印的信息可以看到

获取Intent对象

调用Intent对象的setClassName(packageName,className)方法,设置类名,参数:想要激活的应用string类型的包名,String类型的类名

调用startActivity(intent)方法

业务场景是在检查网络的时候,自动定位到网络设置的界面,这种需求

检查用户的网络情况

获取ConnectityManager对象,调用上下文对象的getSystemService()方法,参数:Context.CONNECTIVITY_SERVICE

调用ConnectityManager对象的getActiveNetworkInfo()方法,返回NetworkInfo对象

调用NetworkInfo对象的isConnected()方法

判断NetworkInfo对象是否为null和上面方法返回值进行判断,展示Toast

需要权限 android.permission.ACCESS_NETWORK_STATE

4.0系统会有问题,之后再说

 

package com.tsh.mstartactivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //跳转
    public void click(View v){
        //第一种方式
        //Intent intent=new Intent();
        //intent.setClassName(this, "com.tsh.mstartactivity.TwoActivity");
        //第二种方式
        Intent intent=new Intent(this,TwoActivity.class);
        startActivity(intent);
    }
    //检查网络
    public void click2(View v){
        ConnectivityManager cm=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info=cm.getActiveNetworkInfo();
        if(info!=null&&info.isConnected()){
            Toast.makeText(this, "网络连接正常", 0).show();
        }else{
            Toast.makeText(this, "网络连接失败", 0).show();
        }
    }
}

 

posted @ 2016-03-22 22:52  唯一客服系统开发笔记  阅读(1141)  评论(0编辑  收藏  举报