我是Android新手.我想知道Looper
课程的作用以及如何使用它.我已阅读Android Looper类文档,但我无法完全理解它.我在很多地方都看过它但却无法理解它的目的.任何人都可以通过定义目的来帮助我,Looper
并且如果可能的话也给出一个简单的例子吗?
Google如何实施推送通知功能?它是通过在后台运行的服务还是以不同的方式完成的轮询来工作的?
我已经为按钮应用了一个形状,如:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient android:startColor="#DD000000" android:endColor="#DD2d2d2d" android:angle="90"></gradient>
<corners android:radius="15dip"></corners>
</shape>
Run Code Online (Sandbox Code Playgroud)
现在我想使用一个选择器,如:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/active"
android:state_pressed="true" />
<item android:drawable="@drawable/passive"/>
Run Code Online (Sandbox Code Playgroud)
对于这个按钮也是如此.可能吗 ...???
我有一个EditText.我想在键入一些文本后,当用户按下softkeybard的Done键时,它应该执行一些搜索操作,我也在按钮点击事件中实现.怎么做...???
我正在开发一个应用程序,它下载一些文件并将它们的文本保存在file_content字段中.文件大小可能从几KB到10 MB不等.该应用程序适用于所有尺寸,同时保存.在long file_content记录上使用select语句时会发生此问题.它给
java.lang.IllegalStateException:无法从CursorWindow读取第0行col 0
何时获取此类行.字段内容大小有限制吗?如果是这样,那么为什么它让我们在检索时保存并给出错误?这是我的代码剪切,提取行:
public String getFileContent(MyFile gc) {
if(!isDBOpen()) {
open();
}
try {
String mQuery = "SELECT * FROM " + DBOpenHelper.TABLE_SAVED_FILES + " WHERE " + DBOpenHelper.COLUMN_ID + " = " + gc.id;
Cursor mCursor = database.rawQuery(mQuery, null);
if(mCursor.getCount() <= 0) {
return null;
}
if(mCursor.moveToFirst()) {
return getCursorRowContent(mCursor);
}
} catch (Exception e) {
e.getMessage();
}
return null;
}
private String getCursorRowContent(Cursor mCursor) throws Exception {
return mCursor.getString(mCursor.getColumnIndex(DBOpenHelper.COLUMN_FILE_CONTENT));
}
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?我已经在2到3台设备上进行了测试.
Logcat输出:
01-29 13:41:56.520: W/CursorWindow(4121): …
Run Code Online (Sandbox Code Playgroud) 我在android项目中的proguard.cfg文件中出现以下错误.我不知道这个错误说的是什么.任何的想法?
我正在为Android实施Google Cloud Messaging服务.我创建了一个测试服务器,它向应用程序用户发送推送通知.但我创建的服务器正在生成以下错误.我在服务器端使用Java Servlet,并在项目中包含了gcm-server.jar文件.
这是日志:
java.lang.ClassNotFoundException: org.json.simple.parser.ParseException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at com.mgcm.SendGCMMessage.processRequest(SendGCMMessage.java:48)
at com.mgcm.SendGCMMessage.doPost(SendGCMMessage.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
知道这有什么问题吗?
我知道这个函数返回一个浮点数,表示特定位置的准确性.我的问题是:这个函数返回的值越大意味着位置越准确,这是对的吗?或者它与我所说的相反?
我的问题很简单.我有一个线性布局.它有一些儿童视图.现在我想在孩子的开头添加一个视图.意味着在普通的addView(视图)中,在布局的末尾添加了视图.但我想在开始时,在第一个位置添加它.任何的想法...???
我正在研究碎片,并且在区分FragmentTransaction.replace(id, fragment, tag)
和FragmentTransaction.addToBackStack(tag)
调用时很少感到困惑.让我们说我当前的片段是FragmentA,然后我加载了FragmentB.我希望将来,当我需要加载FragmentA时,我不必重新加载它.只需在旧状态下加载旧的.我使用了以下代码段:
public void loadFragment(Fragment fragmentB, String tag) {
FragmentManager fm = getSupportFragmentManager();
View fragmentContainer = findViewById(R.id.fragment_container);
FragmentTransaction ft = fm.beginTransaction();
ft.replace(fragmentContainer.getId(), fragmentB, tag);
ft.addToBackStack(tag);
ft.commit();
}
Run Code Online (Sandbox Code Playgroud)
现在我很困惑,我应该在哪里添加字符串标签?在replace()
或addToBackStack()
或在两个电话?你能解释这两个标签位置之间的区别吗?