Android基础——ActionBar
时间:2022-03-13 20:35
ActionBar指的是app上面那一栏选项
首先要自定义一个资源文件夹menu,在里面写一些菜单选项
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <!--ActionBar中通过 app:actionViewClass 添加搜索输入框菜单选项--> <item android:id="@+id/search" android:title="search" app:actionViewClass="android.widget.SearchView" app:showAsAction="always" ></item> <!--ActionBar中添加文字菜单选项,溢出菜单选项--> <item android:id="@+id/bell" android:title="消 息" app:showAsAction="ifRoom"></item> <item android:id="@+id/settings" android:title="设 置" app:showAsAction="never" ></item> <!--ActionBar中的添加图片菜单选项--> <item android:id="@+id/about" android:title="关 于" app:showAsAction="always" app:actionLayout="@layout/rabbit_layout"></item> </menu>
java代码里的调用:要先解析菜单布局文件
package com.example.myactionbari; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获得ActionBar对象 final ActionBar actionBar = getSupportActionBar(); Button button1 = (Button)findViewById(R.id.button1); Button button2 = (Button)findViewById(R.id.button2); button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { actionBar.hide(); } }); button2.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { actionBar.show(); } }); /* * 进入子活动 * */ Button button3 = (Button)findViewById(R.id.button3); button3.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent( MainActivity.this,StepIntoActivity.class ); Toast.makeText( MainActivity.this,"1",Toast.LENGTH_SHORT ).show(); startActivity(intent); } }); } //解析菜单资源文件 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu,menu); return super.onCreateOptionsMenu(menu); } }
然后是进入一个Activity页面后退出的实现方法
先给子Activity标记父Activity,在注册文件里写
<activity android:name=".StepIntoActivity" android:label="朋友圈"> <!--标记父活动--> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/> </activity>
然后java代码里为ActionBar添加上一个返回箭头
package com.example.myactionbari; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.NavUtils; import android.os.Bundle; public class StepIntoActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_step_into); //判断父Activity是否为空,不为空设置返回图标 if(NavUtils.getParentActivityName( StepIntoActivity.this) != null){ getSupportActionBar().setDisplayHomeAsUpEnabled(true);//显示向左的导航图标 } } }
相关推荐
- Android系统编程入门系列之界面Activity交互响应
- 新型横向移动工具原理分析、代码分析、优缺点以及检测方案
- uni-app滚动视图容器(scroll-view)之监听上拉事件
- uniapp h5,app两端复制文本
- Android系统编程入门系列之界面Activity响应丝滑的传统动画
- 【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
- 诺基亚短信生成!太好玩了
- iOS 跳转App Store进行评分
- 开发一个即时通讯App
- 关闭苹果IOS app自动更新
电脑软件
本类排行
- 1关闭苹果IOS app自动更新
- 2iOS 跳转App Store进行评分
- 3诺基亚短信生成!太好玩了
- 4Android系统编程入门系列之界面Activity响应丝滑的传统动画
- 5uniapp h5,app两端复制文本
- 6uni-app滚动视图容器(scroll-view)之监听上拉事件
- 7新型横向移动工具原理分析、代码分析、优缺点以及检测方案
- 8Android系统编程入门系列之界面Activity交互响应
- 9开发一个即时通讯App
- 10【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn