小编Gia*_*nzi的帖子

避免Android Lint抱怨未翻译的字符串

是否可以指定value-* 目录中文件中的字符串故意不转换为其他语言?我有一堆字符串,这些字符串对所有语言都很常见,不需要翻译,所以我unlocalized-strings.xmlvalues目录中创建了一个文件.运行Android Lint来检查问题,它一直说有些翻译丢失了......我不想要要对整个项目禁用此检查,我只想在某些XML文件中禁用它..是否可能?

"title_widget_updater_service" is not translated in de, en, en-rUS, it

Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation

If an application has more than one locale, then all the strings declared in one language     
should also be translated in all other languages.

By default this detector allows regions of a language to just provide a subset of the 
strings and fall back to the standard language strings. You …
Run Code Online (Sandbox Code Playgroud)

android android-resources android-lint

117
推荐指数
5
解决办法
6万
查看次数

活动布局:片段类:vs android:name属性

我已经阅读了Android开发人员指南中有关Fragments的文档,我发现有时他们会指定要使用Fragment标记属性android:name进行实例化的类,有时他们会使用class: attribute:

<fragment
    android:name="com.example.news.ArticleReaderFragment"
    android:id="@+id/viewer"
    android:layout_weight="2"
    android:layout_width="0dp"
    android:layout_height="match_parent" />

<fragment
    class="com.example.android.apis.app.FragmentLayout$TitlesFragment"
    android:id="@+id/titles" 
    android:layout_weight="1"
    android:layout_width="0px" 
    android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

安卓:名称类:互换?如果我在Eclipse中使用自动完成功能,它们都会显示相同的文档提示(即该属性提供了要实例化的类名).当要实例化的类具有与java文件名不同的名称时,可能必须使用第二个名称,例如FragmentLayout.java文件中的TitlesFragment?或者我可以使用语法package.fileDOTjava $ Class也使用android:name属性?

我想为Android Java类提供一些XML标签和属性的文档(我在另一个问题中询问过它).

android xml-attribute android-xml android-fragments

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

如何在Xcode 5中修改故事板后同步本地化的故事板的字符串

我刚开始看看IOS Apps在XCode 5中的本地化,我试图添加一个意大利语本地化: 添加意大利语本地化

Xcode 5自动生成带有单个条目的Main.strings文件,这是我在Main.storyboard文件中放置的唯一标签:

/* Class = "IBUILabel"; text = "Label"; ObjectID = "PeT-4z-NSf"; */
"PeT-4z-NSf.text" = "Etichetta";
Run Code Online (Sandbox Code Playgroud)

XCode 5生成了文件

如果我稍后修改Main.storyboard文件向视图中添加一个新按钮,那么如果可能的话,我应该如何告诉Xcode 5将缺少的本地化字符串添加到Main.strings文件中?我应该通过查看Interface Builder中的对象ID字段手动添加新条目(它可以工作,但我不知道这是否是更新故事板本地化的意义)?我可以在Main.storyboard文件上运行类似genstrings东西来提取所有标签的文本并将新的文本添加到本地化的Main.strings文件中吗?

localization interface-builder uistoryboard ios7 xcode5

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

IOS5中不再提供NSURLConnection方法

我正在查看NSURLConnection可用于建立与URL的同步或异步连接然后检索其数据的类... IOS 5对此类进行了很多更改,我看到他们引入了一些正式的与身份验证或下载相关的协议,但是我没有看到,例如,connection:didReceiveResponse:消息(先前发送给代理并且它不再可用)在某些协议中仍然可用.如何实现异步一旦收到响应,就连接并检索HTTP标头?我敢肯定有一种方法比使用更好NSURLConnection随着connection:didReceiveResponse:消息..等的方法stringWithContentsOfURL也总是同步加载的内容?您在应用程序中使用什么来实现异步下载,避免使用已弃用的方法并对_http响应receive_m等事件做出反应?如果可能,您是否在后台任务中启动同步下载?

nsurlconnection ios5

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

java protected方法可访问性

在下面的代码中,Consumer类可以访问Parent类的受保护方法.如何实现,因为Parent和Consumer类之间没有关系.请解释

class Parent {
    public void method1(){
        System.out.println("PUBLIC METHOD");
    }
    private void method2(){
        System.out.println("PRIVATE METHOD");
    }
    protected void method3(){
        System.out.println("PROTECTED METHOD");
    }
}

public class Consumer {
    public static void main(String[] args){
        Parent parentObj = new Parent();
        parentObj.method1();
        //parentObj.method2();
        parentObj.method3();
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java oop

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

如何监控SIM状态变化

我希望能够在SIM状态改变时做一些事情,即在需要SIM PIN时播放声音,但我认为没有广播事件可以被广播接收器截获...注册android.intent.action .PHONE_STATE只会告诉你CALL-STATE何时发生变化.另一种方法是启动一个注册PhoneStateListener的服务并对LISTEN_SERVICE_STATE作出反应(当状态为OUT-OF-STATE时它可以获取SIM从TelephonyManager状态并查看状态是否为SIM_STATE_PIN_REQUIRED).所以,我的问题是:

1)是否有任何广播意图可用于拦截SIM状态变更或服务状态变更?

2)ServiceStateListener接收到电话状态改变的通知后,在服务中安装PhoneStateListener并使用它向服务本身传递意图是一个坏主意吗?

android broadcastreceiver android-service telephonymanager

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

仅为TextView复合drawable实现onClick

我需要有一些文字与左边被拉伸,我想,当用户点击/触摸图像(仅图像,而不是文字)来执行一些代码,所以我用了一个LinearLayout中具有的TextViewImageView的是可点击并启动onClick事件.XML解析器建议我用带有复合drawableTextView替换它,这将用更少的XML行绘制相同的东西.我的问题是"我可以指定我只想在on drawable上处理onClick事件TextView而不是TextView本身?我见过一些解决方案,包括编写你自己的TextView扩展,但我只对能够在布局资源中做到这一点感兴趣,如果可能的话,我会保留以下内容XML代码:

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:paddingTop="10dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:text="@string/home_feedback_title"
            android:textColor="@android:color/primary_text_dark"
            android:textStyle="bold" 
            android:paddingBottom="4dp"/>


        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/action_feedback" 
            android:clickable="true"
            android:onClick="onClickFeedback"
            android:contentDescription="@string/action_feedback_description"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android onclick textview android-layout

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

启动配置活动时调用Widget onUpdate

我正在实现一个小部件,我面临以下问题:

1) onUpdate当我将小部件添加到主屏幕时调用,即使我指定了配置活动.一旦我将它添加到主屏幕,APPWIDGET_ENABLED就会发送广播,然后发送,APPWIDGET_UPDATE然后启动配置活动..这是一个错误吗?onUpdate在配置活动返回之前,我应该如何理解被调用的方法?我可以通过共享偏好值来实现,但我希望它的行为与开发人员指南中的内容相同,即onUpdate不应该调用该方法.

2) onUpdate每秒都没有被调用updatePeriodMillis,这已被设置为10000,即10用于测试目的的秒数.我receiver在Manifest文件中的声明中是否遗漏了什么?我一直收到Lint警告导出的接收器不需要许可,但我认为这是一个Lint问题而不是我的错. 编辑:我刚刚在参考文档中找到了这个:注意:updatePeriodMillis请求的更新不会每30分钟发送一次.因此,我不会更新窗口小部件的频率是正确的,我将时间更改为1800000毫秒.

3)我想将自己的广播操作传递给窗口小部件提供程序,receiver在Manifest中添加另一个阻止相同提供程序类的块是正确的还是我应该在intent-filter包含该APPWIDGET_UPDATE 操作的内容中添加另一个意图操作?顺便说一下,我评论了我的第二个receiver区块,这不是上述问题的原因.我创建了另一个receiver 块,因为我想将其声明为未导出,以便intent-filter 仅通过我的应用程序代码而不是其他任何人触发操作.

AndroidManifest.xml中

    <receiver android:name="MyWidgetProvider" 
        android:exported="true">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/my_widget_info" />
    </receiver>
    <receiver android:name="MyWidgetProvider" 
        android:exported="false">
        <intent-filter>
            <action android:name="org.test.mywidget.FORCE_SMALL_WIDGET_UPDATE" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

my_widget_info.xml

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="110dp"
    android:updatePeriodMillis="1800000"
    android:initialLayout="@layout/my_widget_layout"
    android:configure="org.test.mywidget.MyWidgetConfiguration" 
    android:resizeMode="none">
</appwidget-provider>
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-widget android-manifest android-appwidget

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

设置多个SharedPreferences实例/文件的默认值

假设我有一个应用程序将首选项保存到两个文件,preferences1.xmlpreferences2.xml.然后,我可以使用以下代码检索对相应对象的引用:

SharedPreferences sharedPrefs1 = getSharedPreferences("preferences1", MODE_PRIVATE);
SharedPreferences sharedPrefs2 = getSharedPreferences("preferences2", MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以操纵两者的首选项并注册侦听器以获取两者的更改.

我对这两个文件的初始化有一些疑问,使用setDefaultValues:

问题1 - PreferenceFragment上下文:我已经创建了一个PreferenceActivity具有两个PreferenceFragments和内的onCreate每一个I执行下面的代码的方法(与图1和2为取代片段1 X和2):

PreferenceManager pm = getPreferenceManager();
pm.setSharedPreferencesName("preferencesX");

PreferenceManager.setDefaultValues(getActivity(),R.xml.preference_fragmentX, false);
Run Code Online (Sandbox Code Playgroud)

我已经看到两个片段在启动时都正确地设置了它们的默认值.但是,鉴于我在应用程序的shared_prefs目录中只能看到一个_has_set_default_values.xml文件,它是如何理解属性的preferences1.xmlpreferences2.xml已经设置好了吗?只要在第一个打开的PreferenceFragment中调用setDefaultValues就会创建此文件,但即使在此之后,如果我打开第二个PreferenceFragment,它也会正确初始化默认值.如何理解它尚未初始化preferences2.xml以及_has_set_default_values.xml的目的是什么,因为它不包含有关哪些优先文件已被初始化的信息?

问题2 - 标准活动上下文:当我启动我的应用程序时,PreferenceActivity不是第一个启动的活动,用户可能永远不会打开它,所以我想在主Activity中初始化两个首选项文件及其默认值,我怎样才能做到这一点?对于默认的共享首选项,很容易:

PreferenceManager.setDefaultValues(this, R.xml.default_preferences, false); 
Run Code Online (Sandbox Code Playgroud)

对于两个首选项文件,我该怎么办?我无法执行以下操作,因为我无法在PreferenceFragment类中检索PreferenceManager的实例:

PreferenceManager pm = getPreferenceManager(); // NOT AVAILABLE AND …
Run Code Online (Sandbox Code Playgroud)

android preferenceactivity android-preferences sharedpreferences android-activity

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

您的Application Delegate设置在哪里以及谁初始化其window和viewController属性?

我有一个关于IOS应用程序的新手问题...如果我创建一个名为TestForStackOverflow的新的基于视图的应用程序,Xcode会自动为TestForStackOverflowAppDelegate.h创建这样的代码:

@class TestForStackOverflowViewController;

@interface TestForStackOverflowAppDelegate : NSObject <UIApplicationDelegate>

@property (nonatomic, retain) IBOutlet UIWindow *window;

@property (nonatomic, retain) IBOutlet TestForStackOverflowViewController *viewController;

@end
Run Code Online (Sandbox Code Playgroud)

以及TestForStackOverflowAppDelegate.m中的以下内容:

#import "TestForStackOverflowAppDelegate.h"

#import "TestForStackOverflowViewController.h"

@implementation TestForStackOverflowAppDelegate

@synthesize window = _window;
@synthesize viewController = _viewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

[...]
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

1)TestForStackOverflowAppDelegate类在哪里设置为当前应用程序的委托?它是"自动"完成的吗?我已经看到main.m源文件只包含以下代码:

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil); …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uiapplicationdelegate ios

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