我们有一个Android应用程序,可用作远程PC程序的客户端.我们想添加一个功能,以便PC可以指示Android应用程序在运行时更改其语言环境,即启动应用程序; 把它与PC通信; 一段时间后,PC告诉应用程序切换到西班牙语或中文.
我们已经为各自的语言环境设置了所有布局和字符串资源.我们的应用程序是用户看到的唯一应用程序,因此如果设备的其余部分保留英语则无关紧要.
在Android中以编程方式在Change语言上有另一个线程,但它似乎没有得出结论.
我可以...
Locale locale = new Locale(sTheNewLocale);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)
...在setContentView ()之前的onCreate()中,但是如果我想在屏幕启动并运行后更改语言环境,则无法提供帮助.有没有办法在Activity已经运行后重新加载内容视图?所以是没有改变的即时语言环境中可靠地或做我要告诉我的老板也不能只是在开始应用之前整个设备设置成新的语言环境进行任何实际的方法?
编辑/注意:我真的需要一个答案,我想继续使用"股票"谷歌Android API.我已经在此创造了+100的赏金,但如果我在接下来的几天内使用股票API得到一个简单的解决方案,我将再增加+100,使其值200点.
我正在尝试使用Android CalendarView控件.我在NestedScrollView中使用按钮和CalendarView制作了一个小应用程序.我做了按钮,它的边距非常大,所以我可以验证滚动工作.在运行Android 6.01的三星Galaxy S5上运行正常.但是在运行4.2.2的三星S Duo(这是我的预定目标)上,没有办法提前一个月(注意当月没有箭头)
这是运行Android 6.01的三星S5的屏幕截图
这是三星的Duo运行4.2.2
content_main.xml看起来像这样...
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- This linear layout is because the scrollview can have only 1 direct child -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/recordEnd"
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_marginTop="100dp"
android:layout_marginBottom="100dp"
android:gravity="center"
android:text="Record End"/>
<CalendarView
android:id="@+id/thecalendar"
android:layout_width="240dp"
android:layout_height="300dp"
android:minDate="01/01/2016"
android:maxDate="11/30/2016"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)
...在Android Studio中,设计视图确实显示了箭头.我不知道如何调试这个.
我正在用C#(.Net Framework 4.0)重写一个古老的VB6程序.它与工厂车间的一件工业设备进行通信.VB6使用了一些旧的基于COM的套接字软件; 我正在使用.Net Socket类.
当我向设备发送消息时,我希望得到回复,所以我知道要听一个.但是设备也可以在没有警告的情况下异步发送消息(例如,指示故障或问题).所以我总是要收到那些.所以我真正喜欢的是一个事件处理程序,只要有任何东西从设备进入就会被调用.
Socket类似乎使用BeginReceive/EndReceive方案进行接收事件处理.我可以在程序开始时执行一次BeginReceive来为所有传入消息定义事件处理程序,还是我必须在整个程序中不断地执行BeginReceive/EndReceive?
提前感谢您澄清正确的方法.
在Eclipse上用Java开发的Android(4.2.2)应用程序,我遇到了崩溃,但我无法弄清楚代码中是什么导致它...
堆栈跟踪不引用任何我自己的源代码...
线程[<1> main](Suspended(异常RuntimeException))
ActivityThread.performLaunchActivity(ActivityThread $ ActivityClientRecord,Intent)行:2255
ActivityThread.handleLaunchActivity(ActivityThread $ ActivityClientRecord,Intent)行:2309 ActivityThread.access $ 700(ActivityThread,ActivityThread $ ActivityClientRecord ,Intent)行:157
ActivityThread $ H.handleMessage(消息)行:1289
ActivityThread $ H(Handler).dispatchMessage(消息)行:99 Looper.loop()行:176 ActivityThread.main(String [])行:5317
Method.invokeNative(Object,Object [],Class,Class [],Class,int,boolean)line:not available [native method] Method.invoke(Object,Object ...)行:511 ZygoteInit $ MethodAndArgsCaller.run( )行:1102 ZygoteInit.main(String [])行:869 NativeStart.main(String [])行:不可用[native method]
...我在我的应用程序中启动了几个活动,并且所有这些活动都包含在try/catch中,但是如果我在catch块中设置了断点,那么它们就不会被击中,如果我跳过启动活动的代码,似乎没有什么似乎不妥.系统也没有向Logcat写任何异常(在Logcat上没有过滤器,完整的详细输出).
点击上面的行就会给我"找不到来源".有没有办法看到它试图启动的Activity或异常的性质是什么?
运行Android Studio 2.1.2,Windows 7.
我用NestedScrollView替换了ScrollView,现在我得到了
android.view.InflateException:二进制XML文件行#2:错误膨胀类NestedScrollView
java.lang.ClassNotFoundException:在路径上找不到类"android.view.NestedScrollView":/ data/app/com.assemblyguide.remote-48.apk
...当我在该XML文件上调用SetContentView()时.当我只有一个ScrollView时,我没有得到它.
我已经尝试过清理,并使缓存无效并重建.XML看起来像这样...
<?xml version="1.0" encoding="utf-8"?>
<NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- This linear layout is because the scrollview can have only 1 direct child -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- Relative layout for Workorder -->
<RelativeLayout
android:id="@+id/rellayWorkorder"
android:background="#383838"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginBottom="2dp">
<TextView
android:id="@+id/workorderlabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_margin="2dp"
android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Work Order:"/>
<TextView
android:id="@+id/workorderContent"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="2dp"
android:gravity="right"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="---workorder---"/>
</RelativeLayout>
<!-- Relative layout for Required Time
<FrameLayout …Run Code Online (Sandbox Code Playgroud) 在整个Web和Stack Overflow上都有对UI Thread的事件队列的引用.例如,runOnUiThread()会将操作发布到UI线程的事件队列.但是我无法找到这个队列的详细描述,所以有人可以指点我一个详细的,或回答几个问题吗?
1.我知道这是一个队列,它包含"行动",但我有点不清楚"行动"是什么.动作方法调用是否带有相关参数,或者是线程本身的指令,还是什么?
2.所有线程都有事件队列还是只有UI线程?
3.如何查看事件队列中的内容或获取事件计数?
4.什么确切地决定了队列中的动作何时执行?
5. View类有一个名为cancelPendingInputEvents()的方法 ,用于" 取消先前发布到事件队列的任何延迟的高级输入事件 ".如果事件队列是线程的属性,为什么这是View类的方法,或者视图是否有一些不同的事件队列?
6.消息队列和事件队列是否有两个不同的队列?NB - 有人在这里询问了这个问题并且回答者开始说它们是同义词然后附加一个附录,这似乎意味着消息不同所以我不清楚最终的答案是什么.
目前,我支持具有以下架构的客户端,用于工业制造过程:
他们在PC上运行Windows程序来控制工业机械.
他们有一个在Android设备(基本上是手机)上运行的专有应用程序(我为他们维护),它通过TCP套接字与PC软件无线连接,因此它可以远程控制这些工业流程.
客户现在想要的是在PC上运行的Web服务器和内置于应用程序中的Web浏览器,以控制一些不受其Windows程序控制的其他进程.
我在PC上设置了一个WAMP服务器和一个示例网页,我可以在PC上的任何浏览器上看到它作为"localhost".我知道如何通过WebView类将Web浏览器视图添加到Android应用程序.
但我不知道如何让手机上的浏览器通过TCP连接看到PC上的WAMP服务器.我如何将这两件事挂钩?
这感觉就像一个noob问题,但在Android中,当方向改变时,Activity被销毁并重新创建,并且onCreate()被重新调用.可以通过savedInstanceState包保存内部状态.到现在为止还挺好.
但在我的应用程序中,我有一个活动,通常通过startActivityForResult()从另一个活动调用,它传递了一堆参数.在onCreate()中,目标活动执行getIntent()来检索传入的数据.问题是,当该活动在屏幕上并且我翻转方向时它会崩溃.它在onCreate()代码中崩溃,它调用getIntent().我认为它正在崩溃,因为没有什么可以"获取",因为在这种情况下,它是从系统而不是从其他活动调用的.
处理这个问题的正确方法是什么?如何判断我的onCreate()是否由于方向更改而被调用,所以我不尝试调用getIntent()?或者我只是想到这个错误?先感谢您.
我正在尝试在Android Studio 2.2.2中使用LogCat进行一些调试,但我的Logcat运行起来就像一个firehose而且内容太多了.
在选择LogCat选项卡的Android监视器中,有一个下拉列表,其中一个选项是" 仅显示选定的应用程序 ",所以我选择了它,但似乎没有任何效果.即使我从调试目标断开连接,我的LogCat也像firehose一样运行.那么" 只显示选定的应用程序 "做了什么,如何判断"选定的应用程序"是什么?
我正在从Eclipse转换到Android Studio,我发现我仍然对Android Studio中有关检测错误的不同组件感到困惑.我有一个包含大约20个Java文件和30个XML文件的项目.我最近跑了一个干净的构建,得到了
Gradle构建在13s 397 ms内完成了5个错误
指出了两个XML文件,并且在它们两个中都有第一个元素前面的空格,并显示错误...
Xml声明应位于所有文档内容之前
所以我修复了这些并再次运行构建没有错误.
然后我运行Lint并发现另外8个带有错误的XML文件(NB,错误,而不是警告),说" 元素选择器没有必需的属性:layout_height ".这个错误显然是由于这些文件位于布局文件夹而不是drawable文件夹中,尽管为什么这不会导致Eclipse中出现问题尚不清楚.
我的问题:
编辑:实际上对于常规Java文件也是如此 - 我将在Gradle构建中得到"0错误",然后我将进入调试器中的源文件并看到Lint中的4个错误.