android跳转_android跳转页面 - CSDN
精华内容
参与话题
  • android跳转到另一个Activity三种方法

    万次阅读 多人点赞 2017-12-09 15:29:09
    一个Intent对象,用于携带将跳转至下一个界面中使用的数据,使用putExtra(key,values)方法,此处存储的数据类型特别多,常用类型都支持。 方法一、 显式启动 Intent内部直接声明要启动的activity所对应的...

    记性不好的妹纸萌,只能靠学习记录整理了。

    一个Intent对象,用于携带将跳转至下一个界面中使用的数据,使用putExtra(key,values)方法,此处存储的数据类型特别多,常用类型都支持。

    方法一、

    显式启动

    Intent内部直接声明要启动的activity所对应的class。


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

    SecondActivity.start(MainActivity.this, url);

    或者在SecondActivity.class里创建static方法

    1. public static void start(Context context, String url) {
      start(context, url,“no”);
      }
    2. public static void start(Context context, String url, String isMy) {
      Intent starter = new Intent(context, WebActivity.class);
      starter.putExtra("URL", url);
      starter.putExtra(ISMY, isMy);
    3. context.startActivity(starter);
      }

    方法二、

    隐式启动

    进行三个匹配,一个是action, 一个是category,一个是data,全部或部分匹配,应用于广播原理BroadcastReceiver。


    在AndroidManifest.xml文件里配置Activity的属性

    action的名字要和Intent跳转内容一样

    例如:

    <activity

    android:name="com.example.android.tst.SecondActivity" android:label="@string/title_activity_main" >

    <intent-filter>

    <action android:name="com.example.android.tst.SecondActivity"/>

    <category android:name="android.intent.category.DEFAULT" />

    </intent-filter>

    </activity>

    在需要用跳转的地方(使用与Adapter等不能直接显示跳转的地方)

    1. Intent intent=new Intent("com.example.android.tst.SecondActivity"); startActivity(intent);



    方法三、

    跳转后,当返回时能返回数据

    在MainActivity.java里面


    1. Intent intent = new Intent(MainActivity.this, OtherActivity.class);
      intent.putExtra("a", a);
      intent.putExtra("b", b);
      // startActivity(intent);并不能返回结果
      startActivityForResult(intent, REQUESTCODE); //REQUESTCODE--->1
    2. // 获取结果
    3. @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      // RESULT_OK,判断另外一个activity已经结束数据输入功能,Standard activity result:
      // operation succeeded. 默认值是-1
      if (resultCode == 2) {
      if (requestCode == REQUESTCODE) {
      int three = data.getIntExtra("c", 0);
      //设置结果显示框的显示数值
      result.setText(String.valueOf(three));
      }
      }
      }



    在OtherActivity.java里面

    此处并不是创建而是直接获取一个intent对象Return the intent that started this activity.

    1. Intent intent = getIntent();
      int a = intent.getIntExtra("a", 0); // 没有输入值默认为0
      int b = intent.getIntExtra("b", 0); // 没有输入值默认为0
      int c=a+b;
    2. 处理完获取数据后,在结束本Activity的时候回传数据
    3. Intent intent = new Intent();
    4. intent.putExtra("c", c); //将计算的值回传回去
      //通过intent对象返回结果,必须要调用一个setResult方法,
      //setResult(resultCode, data);第一个参数表示结果返回码,一般只要大于1就可以
      setResult(2, intent);
    展开全文
  • Android两个页面的跳转

    万次阅读 2018-06-08 23:30:52
    Android两个页面的跳转有两种方式一种显式跳转,一种隐式跳转,这里写的是显式跳转。首先Andriod项目默认生成一个MainActivity.java,如果执行,会默认执行它,但如果在别的Activity中写了登录界面,如何先执行登录呢...

    Android两个页面的跳转有两种方式一种显式跳转,一种隐式跳转,这里写的是显式跳转。

    首先Andriod项目默认生成一个MainActivity.java,如果执行,会默认执行它,但如果在别的Activity中写了登录界面,如何先执行登录呢?假设是这种情况,那么在/项目名/AndroidManifest.xml这个xml文件中,看到这样一段

      <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>
    <intent-filter> 就理解为过滤器,它指定了启动应用程序的Intent对象的动作和类型,就比如新建的一个Activity名叫LoginActivity.java,那么就把上面的代码复制一段,粘贴在下面,并且把MainActivity的过滤器注释或者删除。具体操作如下:
    <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=".LoginActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    这样执行的时候,第一个被执行的就是LoginActivity.java。
    下面我们来介绍一下准备工作,在默认只有MainActivity.java和activity_main.xml的情况下,在src下新建Activity,我们采用快捷方式:如下
    src——>右键——>new——>other——>Andriod——>Andriod Activity——>next——>next——>名字改为LoginActivity——>finish

    这样会同时生成activity_login.xml,就无需创建了。

    现在简单介绍一下如何跳转,以MainActivity.java和TwoActivity.java为例

    activity_main.xml,注意id

        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录" />

    activity_two.xml

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="我就是要登录的页面" />

    MainActivity.java

    public class MainActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		//靠id关联和映射  给btn1赋值,即设置布局文件中的Button按钮id进行关联
    		Button btn1=(Button) findViewById(R.id.btn1);
    		//给btn1绑定监听事件
    		btn1.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				// 给bnt1添加点击响应事件
    				Intent intent=new Intent(MainActivity.this,TwoActivity.class);
    				//启动
    				startActivity(intent);
    			}
    		});
    	}
    }

    TwoActivity.java

    public class TwoActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_two);
    	}
    }

    然后我们就可以执行测试了,效果如下:



    展开全文
  • Android跳转权限设置页面

    万次阅读 2017-10-12 10:49:41
    最近项目上有个需求,读取通讯录。当用户点了拒绝访问通讯录或者其他权限,导致无法使用,这时候我想重新打开...要跳转的权限设置界面如图:目前手上只有华为和小米作为测试 MIUI: 华为: 上

    最近项目上有个需求,读取通讯录。当用户点了拒绝访问通讯录或者其他权限,导致无法使用,这时候我想重新打开权限设置,但是对于很多小白用户不知道怎么设置,这就会导致用户体验不友好的一面。

    之前已经有人写过类似的文章,不过都比较分散,经实测将这些方法总结了一下。

     


    要跳转的权限设置界面如图:目前手上只有华为和小米作为测试


    MIUI:



    华为:



    上代码前先整理下关于Build类的相关调用,后面有可能用到:

    在官方文档中可以查到Build类中有如下常量:

    public static final String BOARD The name of the underlying board, like "goldfish".主板名称
    public static final String BOOTLOADER The system bootloader version number.系统引导程序版本号
    public static final String BRAND The brand (e.g., carrier) the software is customized for, if any.android系统定制商
    public static final String CPU_ABI The name of the instruction set (CPU type + ABI convention) of native code.CPU 和ABI的本地代码指令集
    public static final String CPU_ABI2 The name of the second instruction set (CPU type + ABI convention) of native code.
    public static final String DEVICE The name of the industrial design.设备参数
    public static final String DISPLAY A build ID string meant for displaying to the user显示屏参数
    public static final String FINGERPRINT A string that uniquely identifies this build.硬件名
    public static final String HARDWARE The name of the hardware (from the kernel command line or /proc).内核命令行中的硬件名
    public static final String HOST
    public static final String ID Either a changelist number, or a label like "M4-rc20".修改版本列表
    public static final String MANUFACTURER The manufacturer of the product/hardware.硬件厂商
    public static final String MODEL The end-user-visible name for the end product.版本
    public static final String PRODUCT The name of the overall product.手机厂商
    public static final String RADIO This field was deprecated in API level 14. The radio firmware version is frequently not available when this class is initialized, leading to a blank or "unknown" value for this string. UsegetRadioVersion() instead.
    public static final String SERIAL A hardware serial number, if available.
    public static final String TAGS Comma-separated tags describing the build, like "unsigned,debug".描述Build的标签
    public static final long TIME
    public static final String TYPE The type of build, like "user" or "eng".Build的类型
    public static final String USER
    通过这些常量就可以获得Android手机的一些设备信息。
                                    String sdk = android.os.Build.VERSION.SDK; // SDK号
    
                                    String model = android.os.Build.MODEL; // 手机型号
    
                                    String release = android.os.Build.VERSION.RELEASE; // android系统版本号
                                    String brand = Build.BRAND;//手机厂商
                                    if (TextUtils.equals(brand.toLowerCase(), "redmi") || TextUtils.equals(brand.toLowerCase(), "xiaomi")) {
                                        gotoMiuiPermission();//小米
                                    } else if (TextUtils.equals(brand.toLowerCase(), "meizu")) {
                                        gotoMeizuPermission();
                                    } else if (TextUtils.equals(brand.toLowerCase(), "huawei") || TextUtils.equals(brand.toLowerCase(), "honor")) {
                                        gotoHuaweiPermission();
                                    } else {
                                        startActivity(getAppDetailSettingIntent());
                                    }



      /**
         * 跳转到miui的权限管理页面
         */
        private void gotoMiuiPermission() {
            try { // MIUI 8
                Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
                localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
                localIntent.putExtra("extra_pkgname", context.getPackageName());
                context.startActivity(localIntent);
            } catch (Exception e) {
                try { // MIUI 5/6/7
                    Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
                    localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
                    localIntent.putExtra("extra_pkgname", context.getPackageName());
                    context.startActivity(localIntent);
                } catch (Exception e1) { // 否则跳转到应用详情
                    startActivity(getAppDetailSettingIntent());
                }
            }
        }
    
        /**
         * 跳转到魅族的权限管理系统
         */
        private void gotoMeizuPermission() {
            try {
                Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
                intent.addCategory(Intent.CATEGORY_DEFAULT);
                intent.putExtra("packageName", BuildConfig.APPLICATION_ID);
                startActivity(intent);
            } catch (Exception e) {
                e.printStackTrace();
                startActivity(getAppDetailSettingIntent());
            }
        }
    
        /**
         * 华为的权限管理页面
         */
        private void gotoHuaweiPermission() {
            try {
                Intent intent = new Intent();
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//华为权限管理
                intent.setComponent(comp);
                startActivity(intent);
            } catch (Exception e) {
                e.printStackTrace();
                startActivity(getAppDetailSettingIntent());
            }
    
        }
    
        /**
         * 获取应用详情页面intent(如果找不到要跳转的界面,也可以先把用户引导到系统设置页面)
         *
         * @return
         */
        private Intent getAppDetailSettingIntent() {
            Intent localIntent = new Intent();
            localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            if (Build.VERSION.SDK_INT >= 9) {
                localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
                localIntent.setData(Uri.fromParts("package", getPackageName(), null));
            } else if (Build.VERSION.SDK_INT <= 8) {
                localIntent.setAction(Intent.ACTION_VIEW);
                localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
                localIntent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());
            }
            return localIntent;
        }


    展开全文
  • android 跳转到系统相册选择图片

    千次阅读 2019-03-12 23:50:44
    Intent intent = new Intent(); if (Build.VERSION.SDK_INT &lt; 19) { intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("image/*"... intent = new Intent(Intent.ACTION_PICK...
    Intent intent = new Intent();
    
    if (Build.VERSION.SDK_INT < 19) {
        intent.setAction(Intent.ACTION_GET_CONTENT);
        intent.setType("image/*");
    } else {
        intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
    }
    activity.startActivityForResult(intent,1);
    
    然后在onActivityForResult 拿到图片选择图片的路径:
    
     if (data != null){
                    Uri selectedImage = data.getData();
                    String[] filePathColumns = {MediaStore.Images.Media.DATA};
                    Cursor c = getActivity().getContentResolver().query(selectedImage, filePathColumns, null, null, null);
                    c.moveToFirst();
                    int columnIndex = c.getColumnIndex(filePathColumns[0]);
                    String imagePath = c.getString(columnIndex);
                    imagePaths.add(imagePath);
                    upLoadImage();
                }
    展开全文
  • android中怎么实现点击按钮进行页面的跳转

    万次阅读 多人点赞 2018-03-13 22:12:11
    android--&gt;AndroidActivity。然后根据提示完成Activity的创建。系统会自动创建好两个Activity对应的布局文件,并会自动把Activity进行声明)第二步:在activity_main.xml中添加一个button...
  • 安卓Activity跳转的几种方式

    千次阅读 2019-03-17 12:36:50
    本文转载于...第一种方式,用action来跳转。 使用Action跳转,如果有一个程序的 AndroidManifest.xml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent 就与这个目标Ac...
  • Android Activity的四种经典传值方法

    万次阅读 多人点赞 2016-11-29 23:28:12
    开发中遇到多个activity的传值问题 相邻两个之间的传值 或者多个三个以上之间的传值问题 但是很多同学这方面经验还是不足,说下常用的开发场景 ... 2 比如我在一个界面提交新息 需要打开一个新的界面选择里面的信息...
  • 安卓界面跳转最简单的办法

    千次阅读 2018-10-29 08:26:43
    首先你需要两个界面,每个界面对应一个activity的接下来就是代码 ...//注意,创建button对象时3.0之前的android studio需要强转类型 bt.setOnClickListener(new View.OnClickListener() { @Over...
  • Setting的源代码是在AndroidManifest.xml中设置的 写在标签里,如下: android:title="@string/radio_controls_title" android:summary="@string/radio_controls_summary">
  • Android跳转到拨打电话界面

    万次阅读 2015-01-07 09:02:12
    1 Android直接拨打电话  Intent dialIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + phoneNumber));//直接拨打电话 ...2 Android跳转到拨号界面  Intent dialIntent = new Intent(Intent
  • android 跳转到浏览器打开指定页面

    万次阅读 2016-10-24 15:43:15
    跳转到浏览器并打开指定页面的语句如下: Uri uri = Uri.parse("https://www.baidu.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri);  startActivity(intent);
  • 分两部分: 第一部分:创建新Activity 右键点击包名,之后如下图 第二部分:按钮点击响应函数中...button2.setOnClickListener(new View.OnClickListener() { ... public void onClick(View v) { //在按钮响应函数
  • android studio实现按钮跳转到新activity

    万次阅读 2018-06-20 11:37:12
    1.设置好button与activity,记住button的id。2.接下来设置文件(1)在onCreate外声明button。(2)在Oncreate中写如下代码。button1 = (Button) findViewById(R.id.button);//id后面为上方button的id ...
  • Android(12) 实现页面跳转的简单方法

    千次阅读 2020-01-21 11:22:58
    Intent intent = new Intent(当前类,跳转到的指定类); startActivity(intent); ex:startActivity(new Intent(LoginActivity.this, MainActivity.class)); 方式二: Intent intent = new Intent(); intent....
  • Android 跳转外部浏览器

    万次阅读 2019-01-19 16:47:30
    Intent intent= new Intent();   intent.setAction(&...android.intent.action.VIEW");   Uri content_url = Uri.parse("https://www.baidu.com");   intent.setData(content_url);   sta...
  • 刚开始接触android studio 感觉单击啊,页面跳转啊,什么沉浸式标题栏等等,虽然很简单,但开始学的时候一点都不容易啊(呜呜~~泪奔) ,主要是刚开始的时候对android 不熟悉,对android所用的编程语言不熟悉,也...
  • android中如何设置点击button页面跳转

    万次阅读 2015-10-25 23:49:26
    弄了这么多天终于能跳转了,哭瞎T T 首先在在AndroidManifest.xml里配置(这个得先在src里新建一个OtherActivity.java) 在第一个main layout里面配置一个跳转按钮 android:layout_width="wrap_content...
  • 首先,我需要在Activity跳转没有动画,返回的时候也没有动画,排除fragment。在网上参考了其他的博客,都只是实现了跳转无动画,并没有实现返回无动画。 后通过查阅,可以通过overridePendingTransition(0,0);去控制...
  • Android跳转到微信公众号

    万次阅读 2016-07-01 14:43:39
    Android跳转到微信公众号
  • 最近Android开发过程中由一个activity向某个activity跳转
1 2 3 4 5 ... 20
收藏数 122,799
精华内容 49,119
关键字:

android跳转