在布局XML,可以指定android:imeOptions="actionNext"
其将Next
在虚拟键盘上按一下按钮-焦点跳跃到下一个字段.
如何以编程方式执行此操作 - 例如,基于某些事件触发焦点转到下一个字段?
最简单的方法CharSequence[]
是ArrayList<String>
什么?
当然,我可以遍历每个ArrayList
项目并复制到CharSequence
数组,但也许有更好/更快的方式?
EditTextPreference
在我的偏好活动中使用简单的:
<EditTextPreference
android:key="SomeKey"
android:title="@string/some_title"
android:summary="..."
android:numeric="integer"
android:maxLength="2"
/>
Run Code Online (Sandbox Code Playgroud)
有没有办法将此配置值保存为整数?现在似乎只允许输入数字,但该值仍保存为字符串:
呼叫:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int value = preferences.getInt("SomeKey", -1);
Run Code Online (Sandbox Code Playgroud)
抛出我java.lang.ClassCastException: java.lang.String
,并且:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String value = preferences.getString("SomeKey", "-1");
Run Code Online (Sandbox Code Playgroud)
成功检索值.
如何PreferenceActivity
默认将值保存为整数?
是否有任何Google Analytics测试/沙箱环境用于在将JS自定义代码放入实时系统之前对其进行测试?
我不想使用我的真实跟踪ID来查看我的dev上的所有内容是否正确.环境,我不想把我的代码未经测试直播...
是否有任何技术或可能是一些我可以用于测试的假的Google Analytics跟踪库?
有没有办法在没有WebView
in活动的情况下检索浏览器的用户代理?
我知道有可能通过WebView
以下方式获得:
WebView view = (WebView) findViewById(R.id.someview);
String ua = view.getSettings().getUserAgentString() ;
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,我没有/需要一个webview对象,我不想只是为了检索用户代理字符串而创建它.
有人可能会提供一些技巧和/或示例控制器插件和动作助手是如何不同的?是否存在可以用一个而不是另一个完成特定任务的情况?对我来说,他们看起来或多或少都是一样的,我经常无法决定何时使用什么......有什么大不同之处吗?
在我的应用程序中,我正在AsyncTask
按照Android教程的建议进行一些紧张的工作,并ProgressDialog
在我的主要活动中显示:
dialog = ProgressDialog.show(MyActivity.this, "title", "text");
new MyTask().execute(request);
Run Code Online (Sandbox Code Playgroud)
之后MyTask
我将结果发回活动:
class MyTask extends AsyncTask<Request, Void, Result> {
@Override protected Result doInBackground(Request... params) {
// do some intense work here and return result
}
@Override protected void onPostExecute(Result res) {
postResult(res);
}
}
Run Code Online (Sandbox Code Playgroud)
在结果发布时,在主要活动中我隐藏了对话框:
protected void postResult( Result res ) {
dialog.dismiss();
// do something more here with result...
}
Run Code Online (Sandbox Code Playgroud)
所以一切都在这里工作正常,但我想以某种方式更新进度对话框,以便能够向用户显示一些真正的进展,而不仅仅是假的"请稍候......"消息.我可以以某种方式访问进度对话框MyTask.doInBackground
,完成所有工作吗?
据我所知,它是作为单独的线程运行的,所以我无法与那里的主要活动"交谈",这就是为什么我用它onPostExecute
来将结果推回到它.但问题是onPostExecute
只有当所有工作都已完成时才调用,我想在做某事的过程中更新对话框的进度.
任何提示如何做到这一点?
应该如何正确地完成Spring下Hibernate会话的"生命周期"?
它SessionFactory
由Spring自动创建,并从Glassfish连接池获取其数据库连接.目前我正在通过Hibernate会话SessionFactory.getCurrentSession()
.然后我开始交易,完成工作然后commit()
或rollback()
最后.我需要做任何其他操作,如disconnect()
,close()
,flush()
在任何时间或任何其他人,以便连接将被适当地返回到游泳池或就是一切已经自动春天呢?
有了很多这些方法,我现在有点困惑,要了解应该做什么,也许有人可以指向正确的方向?
如果我在我的activity(in )中创建对所需视图元素(例如EditText
或Button
)的本地引用onCreate()
并使用它们来访问所需元素,那么它是否会有明显的速度提升; 如果我总是findViewById()
在我需要访问某些元素时使用它并不重要特别的元素?
我正在构建一个系统,其中来自客户端的每个请求在服务器端产生多个线程.然后每个线程使用一个或多个DAO(一些DAO当时可以由多个线程使用).@Autowired
Spring 将所有DAO注入到我的线程类中.每个DAO也接收SessionFactory
注入.
什么是跨这些多个DAO管理Hibernate会话的正确方法,所以我不会因为多线程环境而遇到问题(例如,来自不同线程的少数DAO试图同时使用同一个会话)?
这足以让我hibernate.current_session_context_class=thread
在Hibernate配置中指定然后每次在DAO中只是SessionFactory.getCurrentSession()
用来做工作吗?是否可以根据需要正确检测并创建每个线程的会话?
android ×5
hibernate ×2
java ×2
spring ×2
arraylist ×1
charsequence ×1
javascript ×1
performance ×1
session ×1
testing ×1
user-agent ×1
webview ×1