我需要解析一个相当大的XML文件(大约在一百千字节和几百千字节之间变化),我正在使用它Xml#parse(String, ContentHandler)
.我目前正在使用152KB文件进行测试.
在解析期间,我还使用类似于以下的调用将数据插入SQLite数据库中:getWritableDatabase().insert(TABLE_NAME, "_id", values)
.对于152KB的测试文件(大约插入200行),所有这一切大约需要80秒.
当我注释掉所有插入语句(但留下其他所有内容,例如创建ContentValues
等)时,同一个文件只需要23秒.
数据库操作有这么大的开销是正常的吗?我可以做点什么吗?
我有一个ListView,其项目具有平铺背景.为此,我使用以下drawable xml:
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="repeat" />
Run Code Online (Sandbox Code Playgroud)
通常,这是有效的.但是,有时,src drawable不会平铺,而是拉伸以填充整个列表项.(我有几个不同的瓷砖,我把它们混合在一个ListView中.如果有拉伸而不是平铺,那么它永远不会同时存在于所有这些中,因为这是值得的.)
我也尝试添加android:dither="true"
到那个xml,因为我读到某个地方没有它可能会有bug.这并没有改变任何事情.
有没有人有同样的问题?你怎么修好它的?
我通常倾向于使用POJO定义我的应用程序的模型层,例如文章,评论等.
我准备在我的一个ListViews的适配器中实现AlphabetIndexer.现在这个适配器接受一个文章集合,我通常从我的包装器中获取SQLiteDatabase.
AlphabetIndexer构造函数的签名如下:
public AlphabetIndexer (Cursor cursor, int sortedColumnIndex, CharSequence alphabet)
Run Code Online (Sandbox Code Playgroud)
由于这不接受Collection或类似的东西,只是一个Cursor,它让我想知道:也许我不应该为我的模型创建对象,只是使用从数据库返回的Cursors?
所以问题是,我猜:我应该怎么做,用POJO的集合表示数据,或者只是在我的应用程序中使用游标?
有什么输入?
我想要一个完全自定义的Dialog或PopupWindow,没有任何默认的Android UI控件(标题,背景,按钮等等).
这有可能吗?我花了几个小时寻找这个,但没有运气......看起来这应该很容易,但我找不到它.
最好是通过从XML中扩展View,但此时任何可行的东西都会很好.
谢谢.
我想得到这样的东西:http://img202.imageshack.us/img202/552/layoutoy.png.我使用它作为列表项(技术上作为ExpandableListView的组视图).
这是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight">
<TextView
android:id="@+id/list_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end" />
<Button
android:id="@+id/list_item_button"
android:text="Click me!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/list_item_text" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.Button不会包装其内容,而是使用所有可用的水平空间.TextView 确实包装了它的内容,但我想要它做的是在它与Button重叠时切断它.
换句话说,无论textview中的文本量如何,我都希望所有按钮具有相同的宽度.这是可能吗?
我有一个带有自定义BaseAdapter的ListView.列表项包含需要表示数据库中的属性的CheckBoxes.
我使用CheckBox.setOnCheckedChangeListener和一个新的OnCheckedChangeListener来检测更改,因此我可以根据CheckBox的当前状态更改数据库.到目前为止非常简单的东西.
但是,当在列表中向下滚动时,先前检查的CheckBox会取消选中.我怀疑只要视图被回收就会发生这种情况(我正在使用convertView/ViewHolder技术).
我怎么能阻止这个?出了什么问题?
提前致谢.
编辑:为了使事情更清楚,问题是回收视图以某种方式使用isChecked == false调用OnCheckedChangeListener#onCheckedChanged(buttonView,isChecked).
我正在尝试在ImageView中绘制图像,但我希望它不需要缩放,必要时使用滚动条.我怎么能做到这一点?现在我只有一个drawable set作为XML中ImageView的android:src.这会自动缩放图像以适应屏幕宽度.
我读到这可能是因为兼容模式(开发1.5,测试2.1),但后来我补充说
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />
Run Code Online (Sandbox Code Playgroud)
我的清单,没有任何改变.
有线索吗?
-
编辑:我android:scaleType="center"
在ImageView上使用,这显示完整的图像(不能相信我之前没有看到过),但我仍然只得到一个垂直滚动条.使用android:scrollbars="horizontal"
围绕ImageView的ScrollView(显然)隐藏垂直滚动条,但不显示水平滚动条...
我正在编写一个具有"在线模式"的应用程序,即根据需要下载,解析数据并将其插入到SQLite数据库中.所有这些都是由服务完成的.该应用程序包含几个要求服务进行数据更新的活动(根据活动的不同数据).
当用户浏览活动时(无需等待服务完成),很容易获得SQLiteExceptions(消息:数据库被锁定).
我考虑过使用synchronized块,但这会强制用户在服务完成更新时加载新活动(需要加载数据库访问权限)时等待.所以这似乎是一个死胡同.
另一种选择可能是在每个活动的onStop方法中停止更新.当然,更新将被中断,但这不是一个大问题.问题在于我不确定如何处理它.
我的问题是,我该怎样/应该如何处理?
android ×8
database ×2
xml ×2
checkbox ×1
cursor ×1
dialog ×1
drawable ×1
imageview ×1
insert ×1
java ×1
listadapter ×1
listview ×1
performance ×1
pojo ×1
popupwindow ×1
scaling ×1
simultaneous ×1
skinning ×1
sqlite ×1
tiling ×1