当前位置: 编程技术>移动开发
本页文章导读:
▪由SimpleCursorAdapter承袭/定制出来的Adapter 由SimpleCursorAdapter继承/定制出来的Adapter
package com.CursorAdapterTest;
import static com.db.MyOpenHelper.*;
import com.db.MyOpenHelper;
import android.app.Activity;
import android.content.ContentValues;
//...
//...
//省略部分代码
p.........
▪ 从光标位置安插到已经有字符的edittext中 从光标位置插入到已经有字符的edittext中
EditText editor = (EditText)getCurrentView();int cursor = editor.getSelectionStart();editor.getText().insert(cursor,delta);
......
▪ 自定义控件-虚线 自定义控件--虚线
注解:转载自http://407827531.iteye.com/blog/949128。 下面是经过本人编译后的代码。在Android的UI开发中,有时为了界面美观而需要虚线。 Java代码 package com.custom; impo.........
[1]由SimpleCursorAdapter承袭/定制出来的Adapter
来源: 互联网 发布时间: 2014-02-18
由SimpleCursorAdapter继承/定制出来的Adapter
package com.CursorAdapterTest; import static com.db.MyOpenHelper.*; import com.db.MyOpenHelper; import android.app.Activity; import android.content.ContentValues; //... //... //省略部分代码 package com.CursorAdapterTest; import android.widget.TextView; public class CursorAdapterTest extends Activity { /** Called when the activity is first created. */ MyOpenHelper myHelper ; //声明MyOpenHelper对象 int [] testId ; //声明用于存放联系人id的数组 String [] testName ; //声明用于存放联系人姓名的数组 String [] testPhone ; //声明用于存放联系人电话的数组 ListView lv; //声明ListView对象 private static SQLiteDatabase db = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //得到ListView的布局 lv = (ListView)findViewById(R.id.lv); //打开数据库 myHelper = new MyOpenHelper(this, DB_NAME); db = myHelper.getWritableDatabase(); /*ContentValues values = new ContentValues(); for(int i=0;i<100;i++){ values.put(NAME,"A"); values.put(PHONE,1234567+i); db.insert(TABLE_NAME, null, values); }*/ //得到数据库的cursor Cursor c = db.query(TABLE_NAME, null, null, null, null, null, ID); startManagingCursor(c); //实例化adapter Adapter adapter = new Adapter(this, R.layout.listitem, c, new String[]{ID,NAME,PHONE}, new int[]{R.id.list_Id,R.id.list_Name,R.id.list_Phone}); //绑定adapter lv.setAdapter(adapter); } public class Adapter extends SimpleCursorAdapter { private LayoutInflater mInflater; public Adapter (Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); } @Override public void bindView(View view, Context context, Cursor cursor) { //得到每一个item的布局文件 LinearLayout ll = null; if (view == null) { ll = (LinearLayout) mInflater.inflate(R.layout.listitem,null); } else { ll = (LinearLayout)view; } //通过cursor得到每一个字段的ColumnIndex int idCol = cursor.getColumnIndex(ID); int nameCol = cursor.getColumnIndex(NAME); int phoneCol = cursor.getColumnIndex(PHONE); int nCount = cursor.getPosition(); //int nCount = Integer.valueOf(cursor.getString(idCol)); //得到每一个数据控件 ImageView iv_TView = (ImageView)ll.findViewById(R.id.list_Iv); TextView id_TV = (TextView)ll.findViewById(R.id.list_Id); TextView name_TV = (TextView)ll.findViewById(R.id.list_Name); TextView phone_TV = (TextView)ll.findViewById(R.id.list_Phone); //设置每一项数据内容 if( nCount % 2 == 0){ iv_TView.setImageDrawable(getResources().getDrawable(R.drawable.r)); } else { iv_TView.setImageDrawable(getResources().getDrawable(R.drawable.b)); } id_TV.setText(cursor.getString(idCol)); name_TV.setText(cursor.getString(nameCol)); phone_TV.setText(cursor.getString(phoneCol)); } } }
<!--?xml version="1.0" encoding="utf-8"?--> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <listview android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:dividerheight="1px" android:cachecolorhint="#00000000" android:smoothscrollbar="true"> </listview> </linearlayout>
<!--?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="wrap_content"> <imageview android:id="@+id/list_Iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical"> <linearlayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0"> <textview android:id="@+id/list_Id" android:layout_width="wrap_content" android:layout_height="wrap_content"> <textview android:id="@+id/list_Name" android:layout_width="wrap_content" android:layout_height="wrap_content"> <textview android:id="@+id/list_Phone" android:layout_width="wrap_content" android:layout_height="wrap_content"> </textview></textview></textview></linearlayout> </imageview></linearlayout>
[2] 从光标位置安插到已经有字符的edittext中
来源: 互联网 发布时间: 2014-02-18
从光标位置插入到已经有字符的edittext中
EditText editor = (EditText)getCurrentView();
int cursor = editor.getSelectionStart();
editor.getText().insert(cursor,delta);
EditText editor = (EditText)getCurrentView();
int cursor = editor.getSelectionStart();
editor.getText().insert(cursor,delta);
[3] 自定义控件-虚线
来源: 互联网 发布时间: 2014-02-18
自定义控件--虚线
注解:转载自http://407827531.iteye.com/blog/949128。
下面是经过本人编译后的代码。
在Android的UI开发中,有时为了界面美观而需要虚线。
Java代码
package com.custom;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathEffect;
import android.util.AttributeSet;
import android.view.View;
/**
* 画虚线组件
*/
public DashedLine(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);//设置画笔样式
paint.setColor(Color.DKGRAY);
Path path = new Path();
path.moveTo(30, 5); //从什么地方开始,(x、y 的坐标)
path.lineTo(320, 5);//到什么地方结束
/*
*看到这里时,想让它居中显示,但不知道Path 中的哪个属性可用,
*就从开始处到结束处入手了。有朋友知道的请告诉在下,共同学习
*/
PathEffect effects = new DashPathEffect(new float[] { 5, 5, 5, 5 }, 1);
paint.setPathEffect(effects); //Set or clear the patheffect object
/* 例如:
* new float[]{10, 4, 6, 4}。
* 这4个值分别是长线段的长度(10)、长线段与短线段的距离(4)、
* 短线段的长度(6)和短线段与长线段的距离(4)。
* (本例线段长都一样)
* 后面的一个参数为1 :offset into the intervals array
* 我试着将其改为0时没有什么效果,不明白。
*/
canvas.drawPath(path, paint);
/* 其中path参数表示用于绘制路径的轨迹
* paint参数用于指定路径的属性,例如,可以指定路径的颜色等
*/
}
}
在layout文件夹下的xml引用这个控件
Java代码
<com.test.view.DashedLine
android:id="@+id/dashedLine"
android:layout_width="wrap_content"
android:layout_height="10px" />
/*
* 高度可以调整到合适的需求
*/
注解:转载自http://407827531.iteye.com/blog/949128。
下面是经过本人编译后的代码。
在Android的UI开发中,有时为了界面美观而需要虚线。
Java代码
package com.custom;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathEffect;
import android.util.AttributeSet;
import android.view.View;
/**
* 画虚线组件
*/
public DashedLine(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);//设置画笔样式
paint.setColor(Color.DKGRAY);
Path path = new Path();
path.moveTo(30, 5); //从什么地方开始,(x、y 的坐标)
path.lineTo(320, 5);//到什么地方结束
/*
*看到这里时,想让它居中显示,但不知道Path 中的哪个属性可用,
*就从开始处到结束处入手了。有朋友知道的请告诉在下,共同学习
*/
PathEffect effects = new DashPathEffect(new float[] { 5, 5, 5, 5 }, 1);
paint.setPathEffect(effects); //Set or clear the patheffect object
/* 例如:
* new float[]{10, 4, 6, 4}。
* 这4个值分别是长线段的长度(10)、长线段与短线段的距离(4)、
* 短线段的长度(6)和短线段与长线段的距离(4)。
* (本例线段长都一样)
* 后面的一个参数为1 :offset into the intervals array
* 我试着将其改为0时没有什么效果,不明白。
*/
canvas.drawPath(path, paint);
/* 其中path参数表示用于绘制路径的轨迹
* paint参数用于指定路径的属性,例如,可以指定路径的颜色等
*/
}
}
在layout文件夹下的xml引用这个控件
Java代码
<com.test.view.DashedLine
android:id="@+id/dashedLine"
android:layout_width="wrap_content"
android:layout_height="10px" />
/*
* 高度可以调整到合适的需求
*/
1 楼
dahui12344321
2011-04-11
找时间试试
最新技术文章: