小编rop*_*ebo的帖子

如何确定是否在设置中启用了窗口动画

我知道,我可以启动Settings-Activity

Intent intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS);
startActivityForResult(intent,1);
Run Code Online (Sandbox Code Playgroud)

但是我怎么知道动画是否首先启用了?

如果在设置中启用了动画,我在自定义视图中有一个动画,只想显示它.如果他们被禁用,我想让用户在他第一次启动应用程序时启用它们.

android

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

上传多个apk用于不同的屏幕

我有两个apk上传到市场.第一个用于小屏幕和普通屏幕,第二个用于大屏幕和xlarge屏幕.

如果我将小版本上传到市场,它会说:"支持的屏幕:小-xlarge"这很有趣,因为我的清单说:

<supports-screens
    android:xlargeScreens="false"
    android:largeScreens="false"
    android:normalScreens="true"
    android:smallScreens="true">
</supports-screens>
Run Code Online (Sandbox Code Playgroud)

如果我上传更大的版本,我会得到我所期望的:"支持的屏幕:large-xlarge"

<supports-screens
    android:xlargeScreens="true"
    android:largeScreens="true"
    android:normalScreens="false"
    android:smallScreens="false" > 
</supports-screens>
Run Code Online (Sandbox Code Playgroud)

(minSdkVersion ="8"targetSdkVersion ="9")

我究竟做错了什么?

罗兰

编辑:感谢Ghost回答的文件,我编辑了清单如下:

小版本(versionCode ="1001")

<supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true">
</supports-screens>
Run Code Online (Sandbox Code Playgroud)

大版本(versionCode ="2001"):

<supports-screens
    android:smallScreens="false"
    android:normalScreens="false"
    android:largeScreens="true"
    android:xlargeScreens="true"> 
</supports-screens>
Run Code Online (Sandbox Code Playgroud)

这有点尴尬,imho.小版本必须假装也支持大和xlarge,虽然它没有.否则市场不会让我激活它.

关键是要为大版本提供更高版本的代码.将首先找到具有更高版本Code的apk,如果它适合,市场将提供它.如果没有,它将进入具有较低版本代码的apks并查看它们是否合适.

android google-play

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

辅助功能:如何始终将焦点设置在导航项的标题视图上

我在我的应用程序中使用UINavigationController.当使用VoiceOver时,当按下新的ViewController时,backButton具有焦点.

如果视图出现,我宁愿让titleView的accessibilityLabel聚焦,以便首先读取它的accessibilityLabel.

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, self.navigationItem);当我第一次创建并推送视图控制器时,使用titleView似乎是重点.但是当我从另一个视图控制器(推到第一个视图控制器)回来时,焦点再次出现在后退按钮上.

accessibility ios voiceover uiaccessibility

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

保留NSArray中的元素

我正在以下列方式创建一个NSMutable数组:

-(NSArray*)createArrayFromString:(NSString*)str
{
    NSArray *arr = [str componentsSeparatedByString:@" "]; 
    NSMutableArray *result = [NSMutableArray arrayWithCapacity:[arr count]];

    for(NSString *s in arr){
        if([s length]>0){
            [result addObject:[s retain]];
        }
    }
    return (NSArray*) result;
}
Run Code Online (Sandbox Code Playgroud)

这是调用方法,它将接收到的数组元素放入Chapter对象的属性resRefs中:

-(Chapter*)createChapter:(CXMLNode*)node
    {
        Chapter *chapter = [[Chapter alloc] init];
        chapter._id = [[(CXMLElement*)node  attributeForName:@"id"] stringValue];
        chapter.title = [[(CXMLElement*)node attributeForName:@"title"] stringValue];
        chapter.text = [node stringValue];
        [chapter.pids addObjectsFromArray:[self createArrayFromString:[[(CXMLElement*)node attributeForName:@"pids"]stringValue]]];
        [chapter.resRefs addObjectsFromArray:[self createArrayFromString:[[(CXMLElement*)node attributeForName:@"resRefs"]stringValue]]];
        return chapter;
    }
Run Code Online (Sandbox Code Playgroud)

这是问题:

没有保留电话

[result addObject:[s retain]];
Run Code Online (Sandbox Code Playgroud)

我无法从我的ViewController访问NSString元素(EXC_BAD_ACCESS)

我正确使用保留在这里吗?

编辑:

 [[result addObject:s] retain];
Run Code Online (Sandbox Code Playgroud)

 [result addObject:[s retain]]; …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch memory-management objective-c ios

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