可能重复:
如何调用ActionBar的类似ContextMenu的行为?
如何识别是否在ActionMode中单击了"完成"按钮
如何正确处理动作模式"完成"按钮?

我在动作模式下对一个对象执行一些操作,我想通过点击这个按钮来保存结果 - 比如"保存并退出".如何在此按钮上按键按键?
我看到的唯一方法是覆盖带有标志的onDestroyActionMode(ActionMode模式)方法,在dispatchKeyEvent(KeyEvent事件)中触发以处理它是否由"后退"按钮按下引起.
logcat的:
"完成"按下了
10-03 14:31:58.211: D/DESTROY(967): onDestroyActionMode
Run Code Online (Sandbox Code Playgroud)
"后退"紧迫
10-03 14:32:01.771: D/DISPATCH(967): Action: 0/n Keykode: 4
10-03 14:32:01.911: D/DISPATCH(967): Action: 1/n Keykode: 4
10-03 14:32:01.911: D/DESTROY(967): onDestroyActionMode
Run Code Online (Sandbox Code Playgroud)
但这看起来并不是一种好的做法.有没有"好"的解决方案?
UPD:我知道如何在ActionMode.Callback中调用动作模式和处理动作项事件,但是如何按"完成"按钮按下来修改它的行为?"后退"按钮和"完成"按钮既导致ActionMode.Callback的onDestroyActionMode()呼叫.
android actionbarsherlock android-actionbar contextual-action-bar
我已经下载了所有平台/源/等的最新android sdk.如何告诉Android Studio使用现有的android sdk而不将其移动到android-studio\sdk\?
我的代码的某些部分如何知道片段实例在屏幕上可见?
以下代码片段将解释我的问题.
public class MyApp extends Application {
public static final String TAG = MyApp.class.getSimpleName();
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
...
@Override
public void onActivityResumed(Activity activity) {
Log.d(TAG, activity.getClass().getSimpleName() + " is on screen");
}
@Override
public void onActivityStopped(Activity activity) {
Log.d(TAG, activity.getClass().getSimpleName() + " is NOT on screen");
}
...
});
}
Run Code Online (Sandbox Code Playgroud)
在这里,我可以跟踪我的应用程序中的任何活动何时出现在屏幕上.有没有办法在Fragments上扩展这种方法?
就像是
Activity.getFragmentManager().registerFragmentLifecycleCallbacks();
UPD.我对活动实现一无所知,他们是否使用片段以及他们如何使用片段(通过xml,ViewPager等注入).我班上唯一拥有的是应用程序上下文.假设Activity和Fragment实现是黑盒子,我无法进行任何更改.
我有这样的问题:
[2013-11-18 14:38:50 - HelloJni] Unknown Application ABI:
[2013-11-18 14:38:50 - HelloJni]
[2013-11-18 14:38:50 - HelloJni] Unable to detect application ABI's
Run Code Online (Sandbox Code Playgroud)
每个项目都会出现此问题,我正在尝试将其调试为"本机".我已经看过这个,这个和这个主题,但这个解决方案并没有对我的案例产生任何影响.
在其他计算机或VM上,相同的项目可以使用相同的设置正常运行.
表现
...
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
<application android:label="@string/app_name"
android:debuggable="true">
...
Run Code Online (Sandbox Code Playgroud)
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
项目选项中的Verison也已设置为api-14.
我还下载了eclipse,sdk,ndk的新版本.我清理了所有系统范围的变量和PATH元素.我的机器在win7x64下运行.
PS.只有当我尝试调试时才会出现问题,当我构建并运行它时 - 运行良好.
Edit1这是我的ndk-build DUMP_APP_ABI大纲
c:\Users\Usr\workspace\HelloJni>D:\ndk\ndk-build.cmd DUMP_APP_ABI
armeabi
c:\Users\Usr\workspace\HelloJni>
Run Code Online (Sandbox Code Playgroud)
Edit2重要通知.我试图debug as native在不同的机器上运行下一步git clone- > import to …
我正在尝试实现ViewHolder模式,以便在地图上绘制画布时提高性能.我需要为我的标记创建一些标签.在进行数据处理时调用此方法draw()
// now we create label view and convert it into bitmap
private Bitmap createLabelBitmap(GisLaborHistoryObject object, HistoryPoint point) {
// create view from xml
if (vh == null) {
vh = new ViewHolder();
vh.view = inflater.inflate(R.layout.map_gis_history_label, null, false);
vh.tv = (TextView) vh.view.findViewById(R.id.gislabeltext);
}
// set label content
if (vh.tv != null) {
if (!mSingleLaborHistory) {
String name = "";
name = object.getDisplayName();
if (name == null || "".equals(name))
name = object.getPersonId();
if (name == null || "".equals(name))
name = …Run Code Online (Sandbox Code Playgroud) 有没有简单的方法在Android Studio中创建(导入)Android示例项目(在eclipse术语中)?我的意思是像eclipse New Project->Android Sample Project对话
我的意思是如果我点击标记OnMarkerClickListener被调用,所以OnMapClickListener没有.即使我设置mMap.setOnMarkerClickListener(null);标记对象仍然屏蔽底层地图和对象的所有单击事件.如何Marker为所有用户交互设置透明?
在android开发人员的菜单指南中提到:
当用户取消选择所有项目,按BACK按钮或选择栏左侧的完成操作时,操作模式将被禁用,上下文操作栏将消失.
从技术上讲,这意味着mActionMode.finish(),在BACK按钮按下或Done动作选择呼叫ActionMode.Callback onDestroyActionMode()方法.
我的问题是如何Toast("Action mode exit by Done select")在用户选择时执行自定义操作(例如)Done,以及Toast("Action mode exit by BACK")在用户按下时执行另一个操作(例如)BACK?
android actionbarsherlock android-actionbar contextual-action-bar
随着Android Studio的最新更新(1.2预览版),它带来了一个恼人的"网页浏览器"弹出窗口,它出现在xml编辑器中(右上角).打开XML,HTML或SVG文件时会发生这种情况.

如何禁用它?
切换到地图api v2时还有一个问题.这是我想要实现的丑陋表现.
EDIT1.可以有几个标记,每个标记都有自己的标记.所有标记和标签同时显示.

如您所见,标记顶部有一些标签,其中包含一些信息.在使用api v1时,可以使用绘图标记和标签轻松完成Overlay.
如何使用api v2实现它?
第一个想法是将标记(红色)和标记(黑色)渲染到一个位图并将其设置为标记.但它会显着增加标记区域(红色矩形),并且这个 标记限制让我真正头痛,用户可以映射交互实现.
第二个想法是使用GroundOverlay,但乍一看,它不是为此目的而设计的.
Edit2 这里是类似的问题,解决方案,就像在第一个想法中一样,是使用标记和标签作为单个标记位图,从视图创建.