安卓基础(Navigation)
今天学习了简单的Navigation:页面导航。
页面导航的简单例子:

MainAcitivity:
package com.example.navigation; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.NavigationUI; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NavController navController = Navigation.findNavController(this,R.id.fragment);
NavigationUI.setupActionBarWithNavController(this,navController);
} @Override
public boolean onSupportNavigateUp() {
NavController navController = Navigation.findNavController(this,R.id.fragment);
return navController.navigateUp();
}
}
Home_Fragment:
package com.example.navigation; import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button; import androidx.navigation.NavAction;
import androidx.navigation.NavController;
import androidx.navigation.Navigation; /**
* A simple {@link Fragment} subclass.
*/
public class Home_Fragment extends Fragment { public Home_Fragment() {
// Required empty public constructor
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home_, container, false);
} @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Button button = getView().findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NavController navController = Navigation.findNavController(v);
navController.navigate(R.id.action_home_Fragment_to_detail_Fragment);
}
});
}
}
Detail_Fragment:
package com.example.navigation; import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button; import androidx.navigation.NavController;
import androidx.navigation.Navigation; /**
* A simple {@link Fragment} subclass.
*/
public class Detail_Fragment extends Fragment { public Detail_Fragment() {
// Required empty public constructor
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_detail_, container, false);
} @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Button button = getView().findViewById(R.id.button2);
// button.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// NavController navController = Navigation.findNavController(v);
// navController.navigate(R.id.action_detail_Fragment_to_home_Fragment);
// }
// });
getView().findViewById(R.id.button2).setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_detail_Fragment_to_home_Fragment));//上方注释的整体写法,功能一样
}
}
home_detail截图:

这个项目就是简单的跳转,
点击HOME按钮跳转到Detail

按DETAIL按钮或者左上方的返回箭头均可返回到HOME页面
安卓基础(Navigation)的更多相关文章
- [安卓基础] 004.运行app
运行你的app 这篇课程会教你: 1.如何在设备上运行你的app. 2.如何在模拟器上运行你的app. 当然,在学习之前,你还需要知道: 1.如何使用设备. 2.如何使用模拟器. 3.管理你的项目. ...
- 安卓基础之Sqlite数据库最最基础操作
Sqlite数据库基础操作 摘要:在应用中新建一个数据库,并创建一个数据表写入数据,然后读取表中数据并展示. 主要逻辑: 1.通过继承SQLiteOpenHelper自定义类,定制数据库的表结构,初始 ...
- 【安卓基础】WebView开发优化基础
最近工作很忙,不仅要抽空进行管理,还有开发任务在身,幸好有一些规划进行指导,所以还能顺利解决问题.在管理和技术上面,我认为技术是硬实力,管理是软实力,自己需要多点时间花在技术上. 回归正题,在项目中的 ...
- [安卓基础] 006.打开另一个Activity
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- [安卓基础] 003.建立你的第一个App
创建一个android工程项目 我们使用android提供的集成开发工具(Eclipse+ADT)来创建android工程项目.用这个集成开发工具创建项目,简单,方便,快捷,且自动帮助我们生成基础的文 ...
- [安卓基础] 001.学习Android开发的好教程
如果想自学android,有许多不错的android网站.这里收集了一些,列举如下: 国内 极客学院,这里有非常丰富的视频教程. http://www.jikexueyuan.com/course/a ...
- [安卓基础]011存储数据(中)——sqlite语法介绍
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- [安卓基础] 007.管理Activity的生命周期
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 安卓基础之通过Intent跳转Activity
通过Intent跳转Activity 一.通过意图开启Activity的方式: 隐式意图:通过指定一组数据或者动作实现 Intent intent=new Intent(); intent.s ...
随机推荐
- resize函数
#include<opencv2/opencv.hpp>#include<opencv2/highgui.hpp> using namespace cv;using names ...
- 添加一个layer
let testLayer = new TestLayer1();this.addChild(testLayer); let TestLayer1 = cc.Layer.extend({ ctor:f ...
- 对象Bean与Map互转问题
一.摘要 在实际开发过程中,经常碰到需要进行对象与map之间互转的问题,其实对于对象.Map 之间进行互转有很多种方式,下面我们一起来梳理一下: 利用 JSON 工具包,将对象转成字符串,之后再转成 ...
- CentOS7.0安装EMQ代理服务
CentOS7.0安装EMQ代理服务 安装文件下载 官网 : https://www.emqx.io/cn/ 下载地址: https://www.emqx.io/cn/downloads 选择需要的版 ...
- WebRTC笔记(一)
来源<WebRTC权威指南> 1 WebRTC特点 对等连接(Peer Connection):浏览器与浏览器(万维网上的任意两个通信终端)之间的连接(P2P) 信令服务器:在浏览器和对等 ...
- hdu1716 排列2
12 21 123 132 213 231 321 312 .... 每次都将后面n-1位进行全排列.递归的出口当起始坐标等于终止坐标时.需要还原. 设计标记数组.因为需要从小到大输出. #def ...
- vue组件引入
/src/route/index.js import Demo2 from '@/pages/demo2/index.vue' { path : '/demo2', name : 'demo2', c ...
- 【译】PHP 内核 — 字符串管理
[译]PHP 内核 - 字符串管理 (Strings management: zend_string 译文) 原文地址:http://www.phpinternalsbook.com/php7/int ...
- php设计模式之面向接口开发实例代码
<?php header("Content-type:text/html;charset=utf-8"); /** * 共同接口 */ interface db { func ...
- winform学习(10)设置控件透明背景色
如何将控件的背景色设置为透明 ①将属性BackColor设置为Web--Transparent ②将属性FlatStyle设置为Flat 如果想将边框去掉: 将属性FlatAppearance下的Bo ...