不同的 Android 设备偶尔会有不同的屏幕功能(例如 kindle fire 应用中屏幕底部的按钮)。你如何改变这些按钮的行为?我找不到任何关于做这种事情的资源..
** 编辑 **
我发现我所说的“底部按钮”更合适地称为Options Bar
亚马逊的一些 Kindle Fire 文档
** 编辑 **
考虑到两个答案都说这是不可能的,我决定是时候举个例子了。看起来我想要制作的菜单实际上是应用程序的一部分,但对这些系统按钮有一个按钮侦听器。我该如何寻找使用这些按钮的示例代码?
不同的 Android 设备偶尔会有不同的屏幕功能(例如 kindle fire 应用中屏幕底部的按钮)。你如何改变这些按钮的行为?我找不到任何关于做这种事情的资源..
** 编辑 **
我发现我所说的“底部按钮”更合适地称为Options Bar
亚马逊的一些 Kindle Fire 文档
** 编辑 **
考虑到两个答案都说这是不可能的,我决定是时候举个例子了。看起来我想要制作的菜单实际上是应用程序的一部分,但对这些系统按钮有一个按钮侦听器。我该如何寻找使用这些按钮的示例代码?
你如何改变这些按钮的行为?
您询问相关设备的制造商如何修改他们在 Android SDK 之外所做的事情。答案是“你不能”的可能性非常大。
这里是:(java)
package com.wali.jackonsoptionsmenu;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class JacksonsOptionsMenuActivity extends Activity {
private final static String TAG = JacksonsOptionsMenuActivity.class
.getSimpleName();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
// this one is called once before showing OptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.d(TAG,
"onCreateOptionsMenu: called once, while creating options menu");
getMenuInflater().inflate(R.menu.jackonsmenu, menu); // this one
// inflates your
// xml based
// menu into
// memory and
// sets to menu,
// from
// 'R.menu.jacksonsmenu
// to 'menu'
return true; // if You want to handle bottom bar menu (OptionsMenu) you
// have to return 'true'
}
// this one is called everytime, but before showing the menu
// if You want to change button name, icon or other stuff, do it here
// its something like preparing
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Log.d(TAG,
"onPrepareOptionsMenu: called everytime before showing the OptionsMenu");
return true;
}
// this one is called everytime, after the OptionsMenu is shown
// this one comes, if everything is ok in Your implementation, otherwise,
// nothing
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
Log.d(TAG, "onMenuÖpened: called everytime after the OptionsMenu shown");
return true;
}
// this on is called when an item selected try item.getItemId()
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Log.d(TAG, "onOptionsItemSelected: called when an item selected");
switch (item.getItemId()) {
case R.id.menuRefreshAll:
Log.i(TAG, "onOptionsItemSelected: refreshing everything");
break;
case R.id.menuManageSources:
Log.i(TAG, "onOptionsItemSelected: managing sources");
break;
}
return true;
}
// this on is called everytime after the optionsmenu is disappeared
@Override
public void onOptionsMenuClosed(Menu menu) {
Log.d(TAG,
"onOptionsMenuClosed: called everytime after the OptionsMenu is disappeared");
Log.i(TAG, "Hey Jackson, I'm disappeared");
}
}
xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/itemStatus" android:title="@string/titleStatus"
android:icon="@android:drawable/ic_menu_edit"></item>
<item android:title="@string/titleTimeline" android:id="@+id/itemTimeline"
android:icon="@android:drawable/ic_menu_sort_by_size"></item>
<item android:id="@+id/itemPrefs" android:title="@string/titlePrefs"
android:icon="@android:drawable/ic_menu_preferences"></item>
<item android:icon="@android:drawable/ic_menu_delete"
android:title="@string/titlePurge" android:id="@+id/itemPurge"></item>
<item android:title="@string/titleRefresh" android:id="@+id/itemRefresh"
android:icon="@android:drawable/ic_menu_rotate"></item>
</menu>
有一些技巧:如果您有多个具有相同 OptionsMenu 的活动: 1. 使用 OptionsMenu 创建一个基本活动 2. 在其他活动上继承此基本活动,处理相同的 OptionsMenu
结果:多个活动的相同菜单
问候, Galymzhan Sh
你如何改变这些按钮的行为?
行为?您无法更改位于 kindle fire 底部的 3rd 方应用程序按钮的行为(它只是 OptionsMenu,并通过在其他基于 android 的设备上按“菜单”按钮调用)
您可以禁用这些按钮- 主页、返回和其他东西......(但不是在 kindle 上)
Kindle Fire 不支持包含 disable_keyguard 权限或自定义锁屏的应用程序。