动作条中的Android
在ActionBar的Android应用程序的标题栏中的Android可以让我们快速, 更方便. 这是动作条在Gmail的一个例子.
本文将指导您创建和动作条可能易行的工作.
1. 创建动作条
2. 添加按钮 (菜单) 在动作条
3. 得到的ActionBar菜单的事件
4. 重新创建按钮图标
5. 搜索查看动作条上
6. 分享到动作条
动作条由机器人介绍 3.0 以上, 但是用较小的机器人也可以使用由 “库支持”.
1. 创建动作条
创建动作条为Android 3.0 以上
这项工作很简单, 创建一个新项目,当你选择最小的版本可以运行的应用程序 3.0 (或更大) 为默认,然后我们调整动作条.
创建项目,你可以在文件中看到之后都会有这样的行AndroidMainfest.xml
android:minSdkVersion="11"
创建Android的动作条更小 3.0
通常使用较小的机器人,当你创建项目 3.0 它会自动创建 “图书馆” appcompat_v7 从ActionBarActivity MainActivity扩展将立即不需要添加任何东西. 在情况下,如果没有自身产生的,那么你必须执行以下步骤:
B1版的lib支持TU SDK经理 (如果没有).
B2图书馆加入工作区: 文件 -> 进口 -> 现有项目到工作区. 然后点击 下一个. 在下一屏幕上选择浏览并选择 “Android的SDK文件夹,还” \SDK 演员机器人 SUPPORT V7 appcompat VA单击OK.
B3库添加到项目: 右键单击并选择属性项目并移动到Android. 单击Add按钮,然后选择appcompat_v7.
B4: 返回MainActivity.java文件并执行遗留ActionBarActivity
import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
好了,所以再. 现在运行该项目将与这样的动作条简单的程序来实现. 当然,没有任何按键在所有, 我们现在就开始实施.
2. 创建菜单
在本质上,你看到的动作条按钮是菜单. 所以要补充一点,我刚刚完成添加菜单按钮. 例如,我们需要更多的 2 菜单 搜索 和 分享
B1: 莫main.xml文件 (你应该改名,以帮助困惑action_main.xml) 在来电/ RES /菜单/项添加到以下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Trong mỗi item có id: để truy xuất kết nối code java icon: icon của menu showAsAction: trạng thái cho phép hiển thị trên actionbar không title: tiêu để dạng text --> <item android:id="@+id/action_search" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom" android:title="search"/> <item android:id="@+id/action_share" android:icon="@android:drawable/ic_menu_share" android:showAsAction="ifRoom" android:title="share"/> </menu>
B2: 返回MainActivity.java文件,重写方法 onCreateOptionsMenu
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.action_main, menu); return true; }
因此,我们得到这样的菜单:
对于较小的Android 3.0 您需要更改对以下文件action_main.xml一点点:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- Trong mỗi item có id: để truy xuất kết nối code java icon: icon của menu showAsAction: trạng thái cho phép hiển thị trên actionbar không title: tiêu để dạng text --> <item android:id="@+id/action_search" android:icon="@android:drawable/ic_menu_search" android:title="search" app:showAsAction="ifRoom"/> <item android:id="@+id/action_share" android:icon="@android:drawable/ic_menu_share" android:title="share" app:showAsAction="ifRoom"/> </menu>
注意: 您可以设置的值 showAsAction 是 “总” 因此,它总是会出现或 “从来没有” 永远不要出现在动作条, 当你按下菜单按钮,它才会显示.
3. 获取事件菜单
为了使启动事件的菜单项, 我们的方法中制成 onOptionsItemSelected 在MainActivity.java, 假设相应的菜单上点击时,你会做你想做, 它也出现在吐司演示离线.
@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { case R.id.action_search: search(); return true; case R.id.action_share: share(); return true; default: return super.onOptionsItemSelected(item); } } private void search() { Toast.makeText(this, "You click search", Toast.LENGTH_SHORT).show(); } private void share() { Toast.makeText(this, "You click share", Toast.LENGTH_SHORT).show(); }
4. 创建应用程序中的后退按钮图标
当某项活动适用不在家. 你会在应用程序图标看到一个箭头返回这样的:
该按钮可以返回到屏幕 (活动) 之前,或任何活动. 一般情况下,类似于按下手机上的后退按钮. 不过,也有很多不同之处,你可以 点击这里
在活性的研究,你要插入扣, 你只需要给它通过调用:
actionBar.setDisplayHomeAsUpEnabled(true);
我们创建示例应用程序 1 钮, 当点击该按钮将切换到其他活性的研究是Item1Acitivty, Item1Acitivty要出现在一个节点如下:
public class Item1Activity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item1); // lấy ActionBar ActionBar actionBar = getActionBar(); // hiển thị nút Up ở Home icon actionBar.setDisplayHomeAsUpEnabled(true); // Nếu bạn dùng thư viện hỗ trợ cho android nhỏ hơn 3.0 /* * ActionBar actionBar = getSupportActionBar(); * actionBar.setDisplayHomeAsUpEnabled(true); */ } }
因此,展会结束, 然而,当我们按下它什么都没有的现象, 我们需要设置属性 parentActivityName 上,我们希望活动点, 这里是MainActivity, 您可以指向其他活动.
<activity android:name=".Item1Activity" android:label="@string/title_activity_item1" android:parentActivityName="cachhoc.net.tutactionbar.MainActivity" > </activity>
然而,对于 安卓 4.0 向下 然后我们需要声明的元数据的一部分如下:
<activity android:name=".Item1Activity" android:label="@string/title_activity_item1" android:parentActivityName="cachhoc.net.tutactionbar.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="cachhoc.net.tutactionbar.MainActivity" /> </activity>
现在,我们可以使用它,然后.
5. 搜索查看动作条上
Android提供了对ActonBar一些立即采取行动, 在搜索菜单上点击的时候,我会引导你创建一个搜索框. 搜索是便于取景, 你只需要重写在以下文件/res/menu/action_main.xml搜索项:
<!-- giá trị collapseActionView trong showAsAction cho biết nó có thể đóng khi ấn vào bất kỳ nút nào --> <item android:id="@+id/action_search" android:actionViewClass="android.widget.SearchView" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom|collapseActionView" android:title="search"/>
为Android 3.0 以下请执行以下操作:
<item android:id="@+id/action_search" android:icon="@android:drawable/ic_menu_search" android:title="search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom|collapseActionView"/>
所以搜索菜单上,单击当我们搜索查看这样的. 然而搜索做了所有你阅读更多 使用搜索查看的ActioBar (更新)
6. 使用分享菜单上的动作条
机器人可以让我们分享通过社交网络或某种服务的一些信息. 这个例子将执行他的份额文本.
要做到共享一个菜单项进行更改在以下菜单:
<item android:id="@+id/action_share" android:actionProviderClass="android.widget.ShareActionProvider" android:showAsAction="ifRoom" android:title="Share"/>
旁边MainActivity和维修方法 onCreateOptionsMenu
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.action_main, menu); MenuItem item = menu.findItem(R.id.action_share); ShareActionProvider myShareActionProvider = (ShareActionProvider) item .getActionProvider(); Intent myIntent = new Intent(); myIntent.setAction(Intent.ACTION_SEND); myIntent.putExtra(Intent.EXTRA_TEXT, "Đây là đoạn text tôi muốn chia sẻ"); myIntent.setType("text/plain"); myShareActionProvider.setShareIntent(myIntent); return true; }
为Android 3.0 利用库支持
<item android:id="@+id/action_share" android:icon="@android:drawable/ic_menu_share" android:title="share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider" app:showAsAction="ifRoom"/>
/* lưu ý: import android.support.v7.widget.ShareActionProvider; */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.actionbar_menu, menu); // Set up ShareActionProvider's default share intent MenuItem shareItem = menu.findItem(R.id.action_share); ShareActionProvider myShareActionProvider = (ShareActionProvider) MenuItemCompat .getActionProvider(shareItem); Intent myIntent = new Intent(); myIntent.setAction(Intent.ACTION_SEND); myIntent.putExtra(Intent.EXTRA_TEXT, "Đây là đoạn text tôi muốn chia sẻ"); myIntent.setType("text/plain"); myShareActionProvider.setShareIntent(myIntent); return super.onCreateOptionsMenu(menu); }
阅读更多: 动作条在android系统
自己问的时候我扩大活动为什么getActionBar返回null? 谢谢
因为没有动作条的活动你啊.
我看你还用的活动,我们 ?
他的继任者ActionBarActivity NHE.
所以你看在手机上您的评论节目运行Android几?
我想问到位右上角的菜单符号小 … 当点击它会显示物品遮挡标题动作条的列表. 如何解决这个问题?
这是怎么回事是不是您的错误.
他的负荷 1 应用查看菜单列表滴 1 项目. 当然,我已经错过了一些功能?
[IMG]HTTP://vietup.net/files/41b48bb9ac3d8eadc4d3547dd39d290f/e37ecd00cb27a33f043bfebf4c853be2/Screenshot_2016-07-05-23-19-27-996.png[/IMG]