小编Joh*_*Doe的帖子

如何正确处理动作模式"完成"按钮?

可能重复:
如何调用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.CallbackonDestroyActionMode()呼叫.

android actionbarsherlock android-actionbar contextual-action-bar

24
推荐指数
1
解决办法
1万
查看次数

Android Studio使用现有的android sdk

我已经下载了所有平台/源/等的最新android sdk.如何告诉Android Studio使用现有的android sdk而不将其移动到android-studio\sdk\

android android-studio

21
推荐指数
2
解决办法
4万
查看次数

如何检测片段何时出现在屏幕上?

我的代码的某些部分如何知道片段实例在屏幕上可见?

以下代码片段将解释我的问题.

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实现是黑盒子,我无法进行任何更改.

android android-fragments

14
推荐指数
3
解决办法
2万
查看次数

"未知的应用程序ABI:"而"调试为本机应用程序"

我有这样的问题:

[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 …

android android-ndk

12
推荐指数
2
解决办法
8604
查看次数

在TextView.checkForRelayout()时的NullPointerException,而setText()

我正在尝试实现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 android-view

11
推荐指数
1
解决办法
2433
查看次数

我如何在Android Studio中创建Android示例项目

有没有简单的方法在Android Studio中创建(导入)Android示例项目(在eclipse术语中)?我的意思是像eclipse New Project->Android Sample Project对话

android android-studio

9
推荐指数
2
解决办法
2万
查看次数

Google Maps API v2:如何使标记无法点击?

我的意思是如果我点击标记OnMarkerClickListener被调用,所以OnMapClickListener没有.即使我设置mMap.setOnMarkerClickListener(null);标记对象仍然屏蔽底层地图和对象的所有单击事件.如何Marker为所有用户交互设置透明?

android google-maps android-maps android-maps-v2

9
推荐指数
1
解决办法
6367
查看次数

上下文操作模式自定义行为

在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

6
推荐指数
1
解决办法
2060
查看次数

Android Studio:在布局编辑器中禁用"Web浏览器"弹出窗口

随着Android Studio的最新更新(1.2预览版),它带来了一个恼人的"网页浏览器"弹出窗口,它出现在xml编辑器中(右上角).打开XML,HTML或SVG文件时会发生这种情况.

在此输入图像描述

如何禁用它?

intellij-idea android-studio

4
推荐指数
1
解决办法
506
查看次数

在Google地图api v2中标记位于标记的顶部

切换到地图api v2时还有一个问题.这是我想要实现的丑陋表现.

EDIT1.可以有几个标记,每个标记都有自己的标记.所有标记和标签同时显示.

在此输入图像描述

如您所见,标记顶部有一些标签,其中包含一些信息.在使用api v1时,可以使用绘图标记和标签轻松完成Overlay.

如何使用api v2实现它?

第一个想法是将标记(红色)和标记(黑色)渲染到一个位图并将其设置为标记.但它会显着增加标记区域(红色矩形),并且这个 标记限制让我真正头痛,用户可以映射交互实现.

第二个想法是使用GroundOverlay,但乍一看,它不是为此目的而设计的.

Edit2 这里是类似的问题,解决方案,就像在第一个想法中一样,是使用标记和标签作为单个标记位图,从视图创建.

android google-maps android-mapview android-maps-v2

1
推荐指数
1
解决办法
5716
查看次数