我正在使用android sqLite数据库,我无法在DataBase中插入记录.
在代码中,我在启动应用程序时只打开一次数据库,并在那里设置了我的Application类变量的引用,这样我就可以从代码的任何部分访问数据库,这样可以正常工作.
问题是:我可以访问数据库,但我无法启动事务.它没有给我任何例外但sqLiteDatabaseWrite.isDbLockedByOtherThreads()返回TRUE.此外,在logcat中有一条警告消息:
WARN/SQLiteDatabase(19006):数据库锁定30秒没有可用.锁的当前所有者是1.继续在线程中等待:14
任何解决方案?
我想知道LayoutParams它将如何运作LayoutInflator.有什么区别:
LinearLayout childLayout=(LinearLayout)inflater.inflate(R.layout.childitemlayout, null); //FIRST WAY
LinearLayout childLayout=(LinearLayout)inflater.inflate(R.layout.childitemlayout, container,false); //SECOND WAY
Run Code Online (Sandbox Code Playgroud)
因为,这两种方法都给我不同的结果.实际上第二次充气方法给了我两个子布局改变的正确结果,但是第一种方法会给我不同的结果.
这是我的代码:
MainActivity.Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout mainLayout=(LinearLayout)findViewById(R.id.mainLayout);
LayoutInflater inflater=LayoutInflater.from(getApplicationContext());
for(int i=0;i<10;i++){
LinearLayout childLayout=(LinearLayout)inflater.inflate(R.layout.childitemlayout, null); //First WAY
// LinearLayout childLayout=(LinearLayout)inflater.inflate(R.layout.childitemlayout, mainLayout,false); //SECOND WAY
mainLayout.addView(childLayout);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
childitemlayout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="80dp"
android:orientation="vertical"
android:background="#525f67">
<TextView android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Button"
android:gravity="center"
/>
</LinearLayout> <!-- Both ways gives …Run Code Online (Sandbox Code Playgroud) 我对设备管理员api存有疑问/疑问,可以使用密码通过此API限制我的应用程序不被取消安装。
请告诉我设备管理员api的功能是什么?如何在应用程序中使用它们?以及我如何决定需要设置哪些策略?
请在这种混乱中帮助我。
在我的Android项目中,我从数据库检索数据时遇到一个问题。在这种情况下,我尝试从类似URL的数据库中获取字符串值,但是当执行此代码时,出现此错误 android.database.sqlite.SQLiteException:未知错误:无法将BLOB转换为字符串, 并且只有URL colomn才给我这个错误,弦柱。
我没弄错地方。所以朋友请给我建议,我该如何解决这个问题。在这里,我还打印了LogCat。
谢谢。
08-22 20:08:12.290: WARN/System.err(10844): android.database.sqlite.SQLiteException: unknown error: Unable to convert BLOB to string
08-22 20:08:12.300: WARN/System.err(10844): at android.database.CursorWindow.getString_native(Native Method)
08-22 20:08:12.300: WARN/System.err(10844): at android.database.CursorWindow.getString(CursorWindow.java:329)
08-22 20:08:12.300: WARN/System.err(10844): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:49)
08-22 20:08:12.300: WARN/System.err(10844): at com.catLog.ProductsDetailsHomeTab.getProductDeatilsFromDB(ProductsDetailsHomeTab.java:337)
08-22 20:08:12.300: WARN/System.err(10844): at com.catLog.ProductsDetailsHomeTab.setFlipperChild1(ProductsDetailsHomeTab.java:201)
08-22 20:08:12.300: WARN/System.err(10844): at com.catLog.Widget.ViewFlipper_ProductDetails.onRightToLeftSwipe(ViewFlipper_ProductDetails.java:68)
08-22 20:08:12.300: WARN/System.err(10844): at com.catLog.Widget.ViewFlipper_ProductDetails.onTouchEvent(ViewFlipper_ProductDetails.java:131)
08-22 20:08:12.300: WARN/System.err(10844): at android.view.View.dispatchTouchEvent(View.java:3766)
08-22 20:08:12.300: WARN/System.err(10844): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897)
08-22 20:08:12.300: WARN/System.err(10844): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
08-22 20:08:12.300: WARN/System.err(10844): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
08-22 20:08:12.300: WARN/System.err(10844): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1676)
08-22 …Run Code Online (Sandbox Code Playgroud)