使用带有dao Pattern的ContentProvider是正确的.?或者它会带来任何性能问题?
我会尽力解释.我有一个contentProvider.一个活动,一个道和一个豆..
这是代码:
class Bean(){
String name;
}
class Dao{
Activity activity;
public Dao(Activity activity){
this.activity = activity;
public List<Bean> getAllBean() {
Cursor c = activity.managedQuery(Bean.CONTENT_URI, PROJECTION,
null, null, Bean.DEFAULT_SORT_ORDER);
return BeanMapper.GetAllFromCursor(c);
}
}
}
Class Activity{
.....
onCreate(....){
Dao dao = new Dao(this);
List<Bean> aList = dao.getAllBean();
}
....}
Run Code Online (Sandbox Code Playgroud)
你怎么看 ?
问候
在我的布局中,我只有八个单元格.
我希望单元格划分屏幕上的所有可用空间.这可能吗?
这是我的gridview布局:
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dataGrid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10px"
android:verticalSpacing="10px"
android:horizontalSpacing="10px"
android:numColumns="2"
android:gravity="fill" />
Run Code Online (Sandbox Code Playgroud)
这是项目布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="6dip" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#E00000"
android:textStyle="bold"
android:gravity="left"
android:textSize="16dip"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:textStyle="normal"
android:gravity="right"
android:textSize="12dip"/>
</LinearLayout>
</TableRow>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我尝试在我的自定义内容提供者上运行此查询.
cursor = activity.getContentResolver().query(
GoalDescriptor.CONTENT_URI,
"max(priority)", null,
null, null);
Run Code Online (Sandbox Code Playgroud)
获取优先级int列的最大值.
我也尝试过:
cursor = activity.getContentResolver().query(
GoalDescriptor.CONTENT_URI,
null, "max(priority)",
null, null);
Run Code Online (Sandbox Code Playgroud)
没有成功.
此代码返回此异常:
java.lang.IllegalArgumentException: Invalid column MAX(priority)
E/DatabaseUtils( 688): at android.database.sqlite.SQLiteQueryBuilder.computeProjection(SQLiteQueryBuilder.java:523)
E/DatabaseUtils( 688): at android.database.sqlite.SQLiteQueryBuilder.buildQuery(SQLiteQueryBuilder.java:370)
E/DatabaseUtils( 688): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:323)
E/DatabaseUtils( 688): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:280)
E/DatabaseUtils( 688): at nan.salsa.contentprovider.goal.GoalContentProvider.query(GoalContentProvider.java:118)
E/DatabaseUtils( 688): at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:150)
E/DatabaseUtils( 688): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:111)
E/DatabaseUtils( 688): at android.os.Binder.execTransact(Binder.java:288)
E/DatabaseUtils( 688): at dalvik.system.NativeStart.run(Native Method)
D/AndroidRuntime( 727): Shutting down VM
Run Code Online (Sandbox Code Playgroud)
我的内容提供商实施(标准 - 请参阅notePad示例)
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, …Run Code Online (Sandbox Code Playgroud) 我有自定义视图...
package nan.salsa.goal.customview;
import android.R;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RectShape;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
public class DayView extends View {
private static String TAG="DayView";
private ShapeDrawable mDrawable;
public DayView(Context context) {
super(context);
}
public DayView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DayView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public void init() {
int x = 10;
int y = 10;
int width = 300;
int height = …Run Code Online (Sandbox Code Playgroud)