是否可以指定value-*
目录中文件中的字符串故意不转换为其他语言?我有一堆字符串,这些字符串对所有语言都很常见,不需要翻译,所以我unlocalized-strings.xml
在values
目录中创建了一个文件.运行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开发人员指南中有关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标签和属性的文档(我在另一个问题中询问过它).
我刚开始看看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)
如果我稍后修改Main.storyboard文件向视图中添加一个新按钮,那么如果可能的话,我应该如何告诉Xcode 5将缺少的本地化字符串添加到Main.strings文件中?我应该通过查看Interface Builder中的对象ID字段手动添加新条目(它可以工作,但我不知道这是否是更新故事板本地化的意义)?我可以在Main.storyboard文件上运行类似genstrings的东西来提取所有标签的文本并将新的文本添加到本地化的Main.strings文件中吗?
我正在查看NSURLConnection
可用于建立与URL的同步或异步连接然后检索其数据的类... IOS 5对此类进行了很多更改,我看到他们引入了一些正式的与身份验证或下载相关的协议,但是我没有看到,例如,connection:didReceiveResponse:
消息(先前发送给代理并且它不再可用)在某些协议中仍然可用.如何实现异步一旦收到响应,就连接并检索HTTP标头?我敢肯定有一种方法比使用更好NSURLConnection
随着connection:didReceiveResponse:
消息..等的方法stringWithContentsOfURL
也总是同步加载的内容?您在应用程序中使用什么来实现异步下载,避免使用已弃用的方法并对_http响应receive_m等事件做出反应?如果可能,您是否在后台任务中启动同步下载?
在下面的代码中,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)
谢谢
我希望能够在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并使用它向服务本身传递意图是一个坏主意吗?
我需要有一些文字与左边被拉伸,我想,当用户点击/触摸图像(仅图像,而不是文字)来执行一些代码,所以我用了一个LinearLayout中具有的TextView和ImageView的是可点击并启动onClick事件.XML解析器建议我用带有复合drawable的TextView替换它,这将用更少的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) 我正在实现一个小部件,我面临以下问题:
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
假设我有一个应用程序将首选项保存到两个文件,preferences1.xml和preferences2.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.xml和preferences2.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
我有一个关于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) android ×6
android-lint ×1
android-xml ×1
ios ×1
ios5 ×1
ios7 ×1
java ×1
localization ×1
objective-c ×1
onclick ×1
oop ×1
textview ×1
uistoryboard ×1
xcode ×1
xcode5 ×1