[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(); 
        } 
    } 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5473.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论