小编Emi*_*Adz的帖子

通过单击/触摸外部删除片段:

我有一些RelativeLayout动态使用代码添加和删​​除的片段.其中一个片段是a ListFragment,并且与其他具有Close和Save Buttons的片段相反,这个片段只包含一个列表.

我的目标是通过在活动中的任何位置单击它以外来关闭/删除此片段.

我找到了以下代码:

@Override
public boolean onTouchEvent(MotionEvent event) {
    // I only care if the event is an UP action
    if (event.getAction() == MotionEvent.ACTION_UP) {
        // create a rect for storing the window rect
        Rect r = new Rect(0, 0, 0, 0);
        // retrieve the windows rect
        this.getWindow().getDecorView().getHitRect(r);
        // check if the event position is inside the window rect
        boolean intersects = r.contains((int) event.getX(), (int) event.getY());
        // if the event is not inside then we …
Run Code Online (Sandbox Code Playgroud)

android touch-event android-fragments

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

如何测试包含的应用是否授予了“允许完全访问”权限?

我正在从事键盘扩展项目。在应用程序代码的某些时候,我需要测试用户是否已授予键盘扩展的“允许完全访问”权限。要做的是,我需要在应用程序端进行这些测试,并在此基础上让用户访问键盘设置或在未授予许可的情况下提醒他。

问题在于此处提供的方法如下:

func isOpenAccessGranted() -> Bool {
    return UIPasteboard.generalPasteboard().isKindOfClass(UIPasteboard)
}
Run Code Online (Sandbox Code Playgroud)

要么:

func isOpenAccessGranted() -> Bool {
let fm = NSFileManager.defaultManager()
let containerPath = fm.containerURLForSecurityApplicationGroupIdentifier(
                    "group.com.example")?.path
var error: NSError?
fm.contentsOfDirectoryAtPath(containerPath!, error: &error)
if (error != nil) {
    NSLog("Full Access: Off")
    return false
}
NSLog("Full Access: On");
return true
}
Run Code Online (Sandbox Code Playgroud)

仅从键盘端工作,因为键盘是唯一受此权限影响的键盘。从包含应用程序的角度来看,这两个方法总是返回true。

有人知道从应用程序一侧进行测试的可靠方法吗?

keyboard ios swift ios-keyboard-extension

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

解析日期字符串的问题

我正在尝试将以下字符串解析为Date对象:

2013-12-26T01:00:56.664Z
Run Code Online (Sandbox Code Playgroud)

使用这个SimpleDateFormat:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

 java.text.ParseException: Unparseable date: "2013-12-26T01:00:56.664Z" (at offset 19)
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我该如何处理日期中TZ字母?

java parsing android date simpledateformat

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

未连接.调用Connect或等待onConnected()在onConnected内调用异常?

我有这个onConnected回调实现Google LocationClient API:

@Override
public void onConnected(Bundle arg0) {
    if (lc != null) {
        lastKnownLocation = lc.getLastLocation();
        LocationRequest request = new LocationRequest();
        request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        request.setFastestInterval(MIN_TIME_BETWEEN_LOCATION_UPDATES);
        request.setSmallestDisplacement(MIN_DISTANCE_BETWEEN_LOCATION_UPDATES);
        lc.requestLocationUpdates(request, ll);
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,有时候这一行:

lastKnownLocation = lc.getLastLocation();
Run Code Online (Sandbox Code Playgroud)

给我这个例外:

java.lang.IllegalStateException: Not connected. Call connect() and wait for onConnected() to be called.
   at com.google.android.gms.internal.de.bc()
   at com.google.android.gms.internal.ez.a()
   at com.google.android.gms.internal.ez$c.bc()
   at com.google.android.gms.internal.ey.getLastLocation()
   at com.google.android.gms.internal.ez.getLastLocation()
   at com.google.android.gms.location.LocationClient.getLastLocation()
   at com.citylifeapps.cups.helputils.UserLocation.onConnected(UserLocation.java:115)
   at com.google.android.gms.internal.de.aZ()
   at com.google.android.gms.internal.de$f.a()
   at com.google.android.gms.internal.de$f.a()
   at com.google.android.gms.internal.de$b.be()
   at com.google.android.gms.internal.de$a.handleMessage()
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:157)
   at android.app.ActivityThread.main(ActivityThread.java:5356) …
Run Code Online (Sandbox Code Playgroud)

android location google-client

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

开发一个负责所有网络任务的辅助网络类是不错的做法?

我创建了以下类:

public class AsyncHttpsClientHelper {

public static final int REMOVE_CREDIT_CARD = 1;
public static final int ENABLE_AUTORENEW = 2;
// +10 final ints...

private static AsyncHttpsClientHelper instance = null;
private static Activity activity;
// Some other variables

    private AsyncHttpsClientHelper(Context context) {
        // Initiate variables
    }

    public static AsyncHttpsClientHelper getInstance(Context context) {
        // Guarantees the same instance for this class (Singleton)
    }

    public void performNetworkTask(int networkTaskType, String value)
    {
        switch (networkTaskType)
        {
            case REMOVE_CREDIT_CARD:
            {
                CupsLog.d(TAG, "path: " + Consts.ACCOUNT_REMOVE_CREDIT_CARD_PATH);
                client.post(Consts.ACCOUNT_REMOVE_CREDIT_CARD_PATH …
Run Code Online (Sandbox Code Playgroud)

android helper android-networking android-async-http

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

关闭键盘后如何恢复 UIInputViewController self.view ?

我正在开发一个具有键盘扩展的应用程序,在使用键盘扩展时(例如:当我使用切换键盘按钮时),扩展将通过 viewDidDisappear 在这种情况下我知道我可以清理键盘并且它的所有视图都被释放,并且内存被释放。在其他用途​​中(例如:使用 Notes 应用程序并按“完成/后退”按钮时),扩展程序将通过 viewWillDisappear不通过viewDidDisappear,因此在这种情况下,我不会清洁键盘,因为它是没有达到我的清洁方法,因此它不会被释放。

\n\n

此时,我希望当我通过返回注释返回键盘时,我会收到之前的UIInputViewController以及我已经构建的视图。

\n\n

不幸的是,此时isViewLoaded()方法返回false,并且我的UIInputViewController再次通过 loadView 方法,因此重新构建所有视图,结果应用程序内存不断增长,直到在某个时刻我达到令人讨厌的didReceiveMemoryWarning方法回调。

\n\n

我想以某种方式恢复我在首先初始化的UIInputViewController中为键盘创建的视图。有人知道这是否可能以及如何实现?

\n\n

我正在研究RestorationIdentifier来完成此任务,如果我错了,请纠正我,但这是与普通UIViewController一起使用的,不能与UIInputViewController一起使用一起使用,因为不是我的 AppDelegate 负责启动它。

\n\n

更新

\n\n

通过进一步的研究,我得出的结论是,无论您进行什么操作:

\n\n
    \n
  1. 使用 Notes 应用程序中的“完成/返回”按钮。
  2. \n
  3. 切换到“消息”应用程序并使用那里的键盘。
  4. \n
  5. 使用\xe2\x80\x9c切换键盘”按钮
  6. \n
\n\n

和其他场景一样,UIInputViewController类总是经过init方法

\n\n

根据我对面向对象编程的理解,这意味着无论谁调用我的键盘进行收割,都使用构造函数来执行它,并基本上创建键盘的新实例。这意味着在任何行为中键盘第一次重新出现时我永远不会有可用的视图,并且我总是必须为新实例构建键盘视图并清理旧实例。这是正确的吗?或者有没有办法保留 UIInputViewController 的视图?

\n

keyboard uiview ios swift uiinputviewcontroller

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

如何将HashMap转换/转换为LinkedHashMap?

我在我的应用程序中使用Hawk作为替代品SharedPreferences.

我正试图在其中存储一个LinkedHashMap,但出于某种原因,当我从Hawk拉回来时,它会返回常规HashMap而不是LinkedHashMap.在这一点上,我崩溃了,ClassCastException因为HashMap无法LinkedHashMap直接前进.

所以问题是如何将返回的转换HashMapLinkedHashMap

java android casting hashmap linkedhashmap

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

如何从WebView获取WebviewClient实例而不在Android中的API 26上?

我正在为Android开发SDK。作为此SDK的一部分,我需要将自己的应用程序设置WebViewClientWebViewWebView 和SDK集成在一起的应用程序的(而不是我的SDK的一部分)。

因此,WebView可能已经使用设置了它WebViewClient,在这种情况下,我需要WebViewClientWebView我自己的集合中获取此实例,WebViewClient并将其回调方法转发WebViewCleint给开发人员设置的最初配置的方法该应用程序。

我注意到从API V26开始,该类有一个getWebViewClient方法WebView。但显然,我也在寻找在以前的版本中执行此操作的方法。也许有一些使用支持库的方法吗?

有人知道如何在旧版本的WebView中获取集合WebViewClient的实例吗?使用反射或任何其他方法?

android webview webviewclient

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

将使用地图API V1的Android应用转换为地图Android API V2

我有一个使用旧版Maps API的Android应用程序,现在已弃用!

我需要采取哪些步骤才能使我的应用程序与新API一起使用.

我还使用了Distance Matrix API和Google Directions API.

我的代码会用它吗?!

android google-maps google-maps-android-api-2

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

当文本太长时,如何使Google Play像TextView动画一样?

在 Google Play 中,当某个标题的名称太长时,TextView当名称从一端出去TextView,从另一端进入,在标题文本的开头停止一秒钟时,他们会对此应用动画,然后进入下一轮。

有谁有任何解释如何实现这一点?

animation android textview

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