小编mob*_*bob的帖子

是否可以在Android上创建可Parcelable的HashMap?

我试图将HashMap扩展为Parcelable并且我获得了编译的语法,但是,在运行时它会抛出异常并返回一个空指针,试图取消编组数据.

发送者必须转换为(Parcelable)来解决歧义,然而,接收者抱怨预期Parcelable但找到了HashMap.

有没有人成功过这个?我的语法错了吗?有更好的解决方案吗?

以下是代码:

  • HomeActivity.java - 发件人
  • ContentViewActivity.java - 接收器
  • ContentItemSimple.java - 顾名思义(包装String和Integer)
  • ContentItemCollection.java - 这是HashMap

HomeActivity.java

package com.mobibob.android.studyparceable;

import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.format.Time;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class HomeActivity extends Activity implements OnClickListener {
    private static final String TAG = "HomeActivity";
    private ContentItemSimple mContentItemSimple = null;
    private ContentItemContainer mContentItemContainer = null;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android hashmap parcelable

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

为什么我的android报警管理器会立即触发?

我正在按照示例代码每10秒发送一次更新通知.代码如下,它是UpdateService一个AppWidgetProvider.如果我放了一个,Thread.sleep(10*1000);我可以看到我的服务循环的预期行为.我显然有一些根本错误的东西会立即触发.它应该是一个PendingIntent警报,将广播更新给我的听众.

long nextUpdate = 10*1000;
Log.d(TAG, "Requesting next update in " + nextUpdate + " msec." );

Intent updateIntent = new Intent(ACTION_UPDATE_ALL);
updateIntent.setClass(this, UpdateService.class);

PendingIntent pendingIntent = PendingIntent.getService(this, 0, updateIntent, 0);

// Schedule alarm, and force the device awake for this update
AlarmManager alarmManager = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 
    nextUpdate, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-pendingintent android-appwidget

13
推荐指数
3
解决办法
7587
查看次数

如果不推荐使用NSString stringWithContentsOfFile,它的替换是什么?

我有一些来自Tuaw的示例代码,可能是3个版本旧;)编译器发出警告,该方法已被弃用,但我没有看到SDK文档中提到的.如果不推荐使用,则必须采用替代方法或替代方法.有谁知道这种方法的替代品是什么?

具体代码是:

NSArray *crayons = [[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"crayons" ofType:@"txt"]] componentsSeparatedByString:@"\n"];
Run Code Online (Sandbox Code Playgroud)

修改后的代码(在离散的白痴步骤中 - 没有错误处理)是:

NSError *error;
NSString *qs = [[NSBundle mainBundle] pathForResource: @"crayons" ofType: @"txt"];
NSString *ps = [[NSString alloc] stringWithContentsOfFile:qs encoding:NSUTF8StringEncoding error: &error];
NSArray *crayons = [[NSArray alloc] arrayWithContentsOfFile: ps];               
Run Code Online (Sandbox Code Playgroud)

iphone cocoa nsstring

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

android createTempFile抛出权限被拒绝?

这很简单,但不起作用.我正在尝试创建一个临时文件(以后是永久存储文件)来预览MP3文件.我尝试了以下后缀的变种,如下例所示:

public class StudyFileIo extends Activity {
    private static final String TAG = "StudyFileIo";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
            File tempFooFile = File
            .createTempFile("foo", "dat");
            Log.i(TAG, tempFooFile.getAbsolutePath());
        } catch (IOException e) {
            Log.e(TAG, e.toString());
            e.printStackTrace();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

日志:

09-07 11:25:20.299 E/StudyFileIo( 8859): java.io.IOException: Permission denied
09-07 11:25:20.299 W/System.err( 8859): java.io.IOException: Permission denied
09-07 11:25:20.299 W/System.err( 8859):     at java.io.File.createNewFileImpl(Native Method)
09-07 11:25:20.299 W/System.err( 8859):     at java.io.File.createNewFile(File.java:1160)
09-07 11:25:20.299 W/System.err( 8859):     at java.io.File.createTempFile(File.java:1224)
09-07 11:25:20.299 W/System.err( …
Run Code Online (Sandbox Code Playgroud)

permissions file-io android permission-denied

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

如何在Objective-c中使用sqlite3 PRAGMA user_version?

我正在尝试检查sqlite DB的user_version.我有一个管理工具来破坏版本,但我不理解pragma语句的语法.我期望在if语句中测试该值.有人可以提供代码示例吗?当我在我的objective-c代码中嵌入pragma语句时,编译器会抛出错误.

sqlite iphone objective-c pragma

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

为什么我的一些UIViews在导航后会被移动?

在我的一些应用程序设计中或仅仅是一些UIViews,在navigationController的pushViewController之后,我的新视图将被移出窗口状态栏的高度.因此,我将此代码存根放在viewDidLoad方法中.

CGRect  frameAt = [self.view frame];
CGRect  statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
frameAt.origin.y += statusBarFrame.size.height;
[self.view setFrame: frameAt];
Run Code Online (Sandbox Code Playgroud)

这对我来说没有意义,这是XCode和Interface Builder的意图,所以我怀疑在我的视图设计中我正在做一些根本错误的SDK.此外,在极少数情况下,我不必改变观点,我真的不知道两种设计方法的区别.

另请注意,大多数情况下,我尝试使用IB设计我的视图,并进行一些小的自定义.

有没有其他人遇到这个并知道如果没有这样的代码存根他们会做什么修复?

statusbar uiview pushviewcontroller

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

ios:如何在没有系留设备的情况下向配置文件添加新的UDID?

我知道如何从Web门户添加,但是这个特定的配置文件被标记为"由Xcode管理",因此,我需要停止从xcode管理或从Xcode向配置文件添加UDID.

我在Xcode中找不到任何"停止管理"的方法.

在Xcode中,我知道如何通过绑定到我的笔记本电脑并刷新来添加设备,但我没有看到添加UDID的任何选项.

xcode provisioning udid ios provisioning-profile

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

GradleException:Crashlytics 无法确定剥离/未剥离的本机库目录

有很多“闲聊”,但我没有找到我的项目的答案。

在我的项目中使用 Crashlytics 执行 Gradle 同步时,Gradle 无法同步。我还有其他项目,这些项目都很好,当我“比较”build.gradle 文件和其他 Android Studio 设置时,它们具有与 Crashlytics 相关的相同值和设置。

A problem occurred configuring project ':app'.
> org.gradle.api.GradleException: Crashlytics could not determine stripped/unstripped native library directories for project ':app', variant Debug. These are required for generating symbol files when NDK build tasks cannot be automatically inferred. Please specify strippedNativeLibsDir and unstrippedNativeLibsDir in the firebaseCrashlytics extension.
Run Code Online (Sandbox Code Playgroud)

我不是在寻找某人来分类我的配置,而是想知道在我的项目文件中的哪里可以找到“firebaseCrashlytics 扩展”及其配置,以及剥离和未剥离的文件在哪里,以便我可以提供路径?如果您从文档中知道答案,请分享链接。

crashlytics android-studio

10
推荐指数
2
解决办法
6769
查看次数

有没有Android开发人员成功从Web服务接收分块传输协议?

我一直在努力处理几个类实现,以检索分块数据但没有成功.以下是一个有问题的简化代码模块.在网上浏览之后,过去似乎出现了问题(2009年,2010年;版本1.1,1.5),但现在应该解决这些问题.我没有看到Android平台对此协议有任何明确的成功.

救命!

如果我输入无效令牌,我能看到一些响应 - Web服务将响应应用程序错误消息.但是,有效的url和令牌只会响应检测到的chunked协议(isChunked()返回true),但没有任何内容被读取,也没有任何超时等等.

从命令行使用CURL发出的完全相同的URL按预期工作,并显示连续内容(来自Web服务的已发布数据).

是否存在任何Web服务端黑客,例如,添加更多行尾,强制接收流?

                URI uri;
                try {
                    uri = new URI("http://cws.mycompany.com/service/events?accesskeyid=8226f3ddc65a420abc391d8f1fe12de44766146762_1298174060748");
                    HttpClient httpClient=new DefaultHttpClient(); 
                    HttpGet httpGet=new HttpGet(uri); 
                    ResponseHandler<String> rh=new BasicResponseHandler(); 
                    String responseString=httpClient.execute(httpGet,rh); 
                    Log.d(TAG, "response as string:\n" + responseString);
                } catch (URISyntaxException e) {
                    Log.e(TAG, e.toString());
                    e.printStackTrace();
                } catch (ClientProtocolException e) {
                    Log.e(TAG, e.toString());
                    e.printStackTrace();
                } catch (IOException e) {
                    Log.e(TAG, e.toString());
                    e.printStackTrace();
                }
Run Code Online (Sandbox Code Playgroud)

android http chunked http-chunked

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

是什么取代了iOS 5弃用的加速度计:didAccelerate?

嗯......我落后于时代并尝试将一些旧代码移植到新应用程序并且不推荐使用加速器委派.必须有一个替代品.请指出我的文档并让我开始.

deprecated accelerate-framework core-motion ios5

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