調(diào)用cursor的getString方法(參考代碼見下面)
羅城網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),羅城網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為羅城上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的羅城做網(wǎng)站的公司定做!
在while循環(huán)里,如果cursor.moveToNext()能移動(dòng)到下一條
就代表游標(biāo)對(duì)象里有數(shù)據(jù)。然后調(diào)用cursor的getString()方法把cursor的復(fù)制給字符串。
public?ListBlackBean?findAll()?{
SQLiteDatabase?db?=?helper.getReadableDatabase();
ListBlackBean?blackBeans?=?new?ArrayListBlackBean();
Cursor?cursor?=?db.query("blackNumber",?new?String[]{"number",?"mode"},?null,?null,?null,?null,?null);
while?(cursor.moveToNext())?{
BlackBean?blackNumberInfo?=?new?BlackBean();
blackNumberInfo.setNumber(cursor.getString(0));
blackNumberInfo.setMode(cursor.getString(1));
blackBeans.add(blackNumberInfo);
}
cursor.close();
return?blackBeans;
}
java之?dāng)?shù)組
數(shù)組概述:
1、數(shù)組可以看成是多個(gè)相同數(shù)據(jù)類型數(shù)據(jù)的組合,對(duì)這些數(shù)據(jù)的統(tǒng)一管理。
2、數(shù)組變量屬引用類型,數(shù)組也可以看成是對(duì)象,數(shù)組中的每個(gè)元素相當(dāng)于該對(duì)象的成員變量。
3、數(shù)組中的元素可以是任何類型,包括基本類型和引用類型。
一維數(shù)組的聲明:
1、一維數(shù)組的聲明方式:
type var[]; 或type[] var;
例如:
int a1[]; int[] a2; double b[]; Person[] p1; String s1[];
2、java語言中聲明數(shù)組時(shí)不能指定其長度(數(shù)組中元素的個(gè)數(shù)),例如:
int a[5];//非法
數(shù)組對(duì)象的創(chuàng)建:
1、java中使用關(guān)鍵字new 創(chuàng)建數(shù)組對(duì)象,格式為:
數(shù)組名 = new 數(shù)組元素類型[數(shù)組元素個(gè)數(shù)];
例如:
public class TestArray{
public static void main(String args[]){
int[] arr;
arr = new int[5];
for(int i=0;i5;i++){
arr[i] = i;
System.out.println(arr[i]);
}
}
}
2、元素為引用類型的數(shù)據(jù)(注意:元素為引用數(shù)據(jù)類型的數(shù)組中的每一個(gè)元素都需要實(shí)例化)
例如:
public class TestArray{
public static void main(String args[]){
Date[] date;
date = new Date[3];
for(int i=0; i3; i++){
date[i] = new Date(2014,10,25);
System.out.println(date[i].year+"年,"+date[i].month+"月,"+date[i].day+"日!");
}
}
}
class Date{
int year,month,day;
public Date(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
}
數(shù)組初始化:
1、動(dòng)態(tài)初始化:
數(shù)組定義與為數(shù)組元素分配空間和賦值的操作分開進(jìn)行,例如:
public class TestArray{
public static void main(String args[]){
int[] arr = new int[3]; //數(shù)組定義
arr[0]=1; //數(shù)組初始化
arr[1]=2;
arr[2]=3;
Date[] date = new Date[3]; //數(shù)組定義
date[0] = new Date(2014,10,25); //數(shù)組初始化
date[1] = new Date(2014,10,25);
date[2] = new Date(2014,10,25);
}
}
class Date{
int year,month,day;
public Date(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
}
2、靜態(tài)初始化
在定義數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值,例如:
public class TestArray{
public static void main(String args[]){
int a[] = {1,2,3};
Date[] date = {new Date(2014,10,25), new Date(2014,10,26), new Date(2014,10,27)};
}
}
class Date{
int year,month,day;
public Date(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
}
3、數(shù)組元素的默認(rèn)初始化:
數(shù)組時(shí)引用類型,它的元素相當(dāng)于類的成員變量,因此數(shù)組分配空間后,每個(gè)元素也被按照成員變量的規(guī)則被隱式初始化,例如:
public class TestArray{
public static void main(String args[]){
int[] a = new int[3];
Date[] date = new Date[3];
System.out.println(a[2]);
System.out.println(date[2]);
}
}
class Date{
int year,month,day;
public Date(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
}
數(shù)組元素的引用:
1、定義并用運(yùn)算符new為之分配空間后,才可以引用數(shù)組中的每個(gè)元素,數(shù)組元素的引用方式為:
①、arrayName[index]
index為數(shù)組元素下標(biāo),可以使整形常亮或整形表達(dá)式。如:
a[3], b[i], c[6*i];
②、數(shù)組元素的下標(biāo)從0開始;長度為n的數(shù)組的合法下標(biāo)取值范圍為:
0~n-1;
2、每個(gè)數(shù)組都有一個(gè)屬性lendth(注:這里length是一個(gè)屬性,不是方法,沒有加括號(hào)(),我們這里特別說明是為了和String的length()方法做區(qū)別)指明他的長度,例如:
a.length的值為數(shù)組a的長度(元素個(gè)數(shù))
注:
public static void main(String args[]){}
我們每個(gè)類中的主函數(shù)也有一個(gè)數(shù)組,名叫srgs,那么這個(gè)數(shù)組時(shí)干嘛用的呢?這個(gè)數(shù)組就好比,我們?cè)诿钚兄凶⑷?ipconfig -all 中的all. 我們可以在輸入 java TestArray(類名) 23,12,aa,bbb 這個(gè)跟幾個(gè)參數(shù)。然后可以在代碼中輸出來看到。
注(基礎(chǔ)類型的包裝類):
基礎(chǔ)類型的包轉(zhuǎn)類, 基礎(chǔ)類型是分配在棧內(nèi)存中的 , 包裝類是分配在堆空間里面的 。
基礎(chǔ)類型的包裝類有:Boolean---boolean 、 Byte---byte 、 Character---char 、 Double---double 、 Float---float 、 Integer---int 、 Long--- long 、 Short---short 通常我們使用parsexxx()方法來將string類型轉(zhuǎn)換為我們想要的數(shù)據(jù)類型。我們也可以使用string類型的valueOf()方法將想要的 數(shù)據(jù)類型轉(zhuǎn)換為string類型。
下面我們舉一個(gè)args[]參數(shù)和基礎(chǔ)類型包裝類一起使用的例子,用來計(jì)算+-x/:
public class TestArgs{
public static void main(String args[]){
if(args.length3){
System.out.println("error~~~");
System.exit(0);
}
double b1 = Double.parseDouble(args[0]);
double b2 = Double.parseDouble(args[2]);
double b = 0;
if(args[1].equals("+")){
b = b1 + b2;
}else if(args[1].equals("-")){
b = b1-b2;
}else if(args[1].equals("x")){
b = b1*b2;
}else if(args[1].equals("/")){
b = b1/b2;
}else{
System.out.println("error operation!!!");
}
System.out.println(b);
}
}
下面舉一個(gè)用ars輸入10個(gè)數(shù),并且用選擇排序,從小到大排序的示例:
public class TestSortInt{
public static void main(String args[]){
int[] a = new int[args.length];
for(int i=0; iargs.length; i++){
a[i] = Integer.parseInt(args[i]);
}
int k,temp;
for(int i=0; ia.length; i++){
k = i;
for(int j=i+1; ja.length; j++){
if(a[k]a[j]){
k=j;
}
}
if(k!=i){
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
for(int i=0; ia.length; i++){
System.out.print(a[i] + " ");
}
}
}
下面我們用數(shù)組里面裝一個(gè)日期類型做排序的示例,用了冒泡排序。
public class TestDateSort{
public static void main(String args[]){
Date[] date = new Date[5];
date[0] = new Date(2006,5,4);
date[1] = new Date(2006,7,4);
date[2] = new Date(2008,5,4);
date[3] = new Date(2004,5,9);
date[4] = new Date(2006,5,4);
bubbleSort(date);
for(int i=0; i date.length; i++){
System.out.println(date[i]);
}
}
public static Date[] bubbleSort(Date[] a){
int len = a.length;
for(int i=len; i=1; i--){
for(int j=0; ji-1; j++){
if(a[j].compare(a[j+1])0){
Date temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
return a;
}
}
class Date{
private int year,month,day;
public Date(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
public int compare(Date date){
return yeardate.year?1
:yeardate.year?-1
:monthdate.month?1
:monthdate.month?-1
:daydate.day?1
:daydate.day?-1
:0;
}
public String toString(){
return "year,month,day ---- " +year+" - "+month+" - "+day;
}
}
Android可以遍歷每一個(gè)控件,使用instanceof判斷類型進(jìn)行相應(yīng)的賦值。
比如:Button button = new Button(this);
ImageView textView = new ImageView(this);
View[] views = new View[] {button, textView};
for (View itemview : views) {
if (itemview instanceof TextView) {
System.out.println("This is a imageView");
}
if (itemview instanceof Button) {
System.out.println("This is a button");
}
}
但是要注意一下繼承關(guān)系,比如Button extends TextView。因此Button 也會(huì)走TextView的判斷方法,因此需要把子類判斷放在前面,得到合適的即continue;
for (View itemview : views) {
if (itemview instanceof Button) {
System.out.println("This is a button");
continue
}
if (itemview instanceof TextView) {
System.out.println("This is a TextView");
continue;
}
if (itemview instanceof TextView) {
System.out.println("This is a imageView");
continue;
}
}
Bitmap是Android系統(tǒng)中的圖像處理的最重要的類之一。用它可以獲取圖像文件信息,對(duì)圖像進(jìn)行旋轉(zhuǎn),剪切,放大,縮小等操作。
Bitmap代表一張位圖,使我們?cè)陂_發(fā)中常用的資源,下面就對(duì)Bitmap進(jìn)行簡單的介紹。
Bitmap的獲取方法:
1、使用BitmapDrawable
BitmapDrawable里封裝的圖片就是一個(gè)Bitmap對(duì)象,我們要把Bitmap包裝成BitmapDrawable對(duì)象,可以調(diào)用BitmapDrawable的構(gòu)造方法:
BItmapDrawbale drawable = new BItmapDrawable(bitmap);
如果要獲取BitmapDrawable所包裝的Bitmap對(duì)象,則可調(diào)用BitmapDrawable的getBitmap()方法:
Bitmap bitmap = drawbale.getBitmap();
2、Bitmap提供了一些靜態(tài)方法來創(chuàng)建Bitmap對(duì)象(僅列舉幾個(gè)):
createBitmap(Bitmap source,int x,int y,int width,int height):從原位圖source的指定坐標(biāo)(x,y)開始,從中挖取寬width,高h(yuǎn)eigtht的一塊出來,創(chuàng)建新的Bitmap對(duì)象。
createScaledBitmap(Bitmap source,int width,ing height,boolean fliter):對(duì)源位圖進(jìn)行縮放,縮放稱寬width,高h(yuǎn)eigth的新位圖。
createBitmap(int width,int height,Bitmap.Config config):創(chuàng)建一個(gè)寬width,高h(yuǎn)eight的可變的新位圖。
createBitmap(Bitmap source, int x,int y,int width,int height ,Matrix m,boolean fliter):從源位圖source的指定坐標(biāo)(x,y)開始,挖取寬width,高h(yuǎn)eight的一塊來,創(chuàng)建新的Bitmap對(duì)象,并按照Matrix指定的規(guī)則進(jìn)行變換。
3、通過對(duì)資源文件的解析獲取Bitmap對(duì)象
在這里就要用到BitmapFactory這個(gè)工具類,提供的方法如下:
decodeByteArray(byte[] data, int offset,int length):從指定字節(jié)數(shù)組的offset位置開始,將長度為length的字節(jié)數(shù)據(jù)解析成Bitmap對(duì)象。
decodeFIle(String pathName):從pathName指定的文件中解析、創(chuàng)建Bitmap對(duì)象。
decodeFileDescriptor(FileDescriptor fd):用于從FileDescriptor對(duì)應(yīng)的文件中解析、創(chuàng)建Bitmap對(duì)象。
decodeResource(Resource res,int id):用于根據(jù)給定的資源ID從指定的資源文件中解析、創(chuàng)建Bitmap對(duì)象。
decodeStream(InputStream is):用于從指定輸入流中介解析、創(chuàng)建Bitmap對(duì)象。
但是,在系統(tǒng)不斷的解析、創(chuàng)建Bitmap的過程中,可能會(huì)由于內(nèi)存小或其他原因,導(dǎo)致程序運(yùn)行時(shí)發(fā)生OutOfMemory錯(cuò)誤。
為此,Android為Bitmap提供了內(nèi)存回收方法:
void recycle():強(qiáng)制回收Bitmap對(duì)象。
還有用于判斷Bitmap 對(duì)象是否被回收的方法:
boolean isRecycle();
如果Android應(yīng)用需要訪問系統(tǒng)相冊(cè),都需要借助BitmapFactory解析、創(chuàng)建Bitmap對(duì)象。
4 從安卓無憂中看bitmap的幾種例子,下面是加載bitmap的例子,可以看里面的源碼:
如果您對(duì)答案滿意,請(qǐng)您關(guān)注一下名字中微博。
1,創(chuàng)建二維數(shù)組語句:int[][] array = new int[3][3];
2,直接創(chuàng)建二維數(shù)組并賦值語句:int[][] array ={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}} ;
二維數(shù)組,也可以理解為用一維數(shù)組保存的元素為一維數(shù)組。對(duì)于三維數(shù)組,等等,都可以這樣劃分。不過我們?cè)诰幊讨惺褂萌S以上的數(shù)組比較少。因?yàn)槟菢邮褂闷饋矸浅2环奖恪O旅嫖覀儊韺W(xué)習(xí)二維數(shù)組的聲明。其聲明同一位數(shù)組一樣,可以先聲明再分配內(nèi)存,也可以聲明時(shí)分配內(nèi)存
第一種,先聲明再分配內(nèi)存的方式
數(shù)組聲明: 數(shù)據(jù)類型 數(shù)組名[][];
內(nèi)存分配: 數(shù)組名 = new 數(shù)據(jù)類型[行的個(gè)數(shù)][列的個(gè)數(shù)];
舉例: 假如我們需要統(tǒng)計(jì)一個(gè)象棋上放的是黑棋還是白棋。這時(shí),我們可以建立一個(gè)坐標(biāo),即以象棋盤的兩邊建立坐標(biāo)軸。這時(shí),我們可以這樣定義這個(gè)二維數(shù)組:
聲明數(shù)組: int Chess[][];
內(nèi)存分配 Chess= new int[64][64];
第二種,即聲明時(shí)即分配內(nèi)存的方式。
使用格式是: 數(shù)據(jù)類型 數(shù)組名[][] =new 數(shù)據(jù)類型 [行的個(gè)數(shù)][列的個(gè)數(shù)];
使用上個(gè)步驟中的例子,我們可以將數(shù)組的聲明和分配內(nèi)存寫成以下方式:
聲明即分配內(nèi)存:int Chess[][] = new int[64][64];
二維數(shù)組的賦值,同一維數(shù)組類似。只是在{}中的每個(gè)元素又是每個(gè)一維數(shù)組。如下格式:
數(shù)據(jù)類型 數(shù)據(jù)名[][]={
{值1,值2,值3,值4 }, //第一行數(shù)據(jù)
{值5,值6,值7,值8}, //第二行數(shù)據(jù)
...,
}
二維數(shù)組中,可以有列數(shù)不相等的數(shù)組。即每一行的列數(shù)不同時(shí)。我們需要對(duì)每一行進(jìn)行賦值。
對(duì)于這兩種二維數(shù)組。我們分別來進(jìn)行分別舉例進(jìn)行賦值。第一種是:列數(shù)相同的數(shù)組
其賦值格式如下:
String ClassRoom[][]={
{"小王","小李","小張"},
{"小紅","小明","小花"},
}
即第一行的人數(shù)和第二行的人數(shù)相同。
第二種:即列數(shù)不相等的數(shù)組的賦值格式如下:
String ClassRoom[][]={
{"小王","小李","小張"},
{"小紅","小明","小花"},
{"小雨","小風(fēng)","小平","小雷"},
{"小單"}
}
看上述例子。對(duì)于不同的行,其相應(yīng)的列數(shù)是不同的。
Android讀寫數(shù)據(jù)庫代碼比較多,以下為基本步驟:
創(chuàng)建數(shù)據(jù)庫,并讀寫/ol創(chuàng)建一個(gè)名為Test的數(shù)據(jù)庫,并返回一個(gè)SQLiteDatabase對(duì)象mSQLiteDatabasemSQLiteDatabase=this.openOrCreateDatabase("Test",MODE_PRIVATE,null);通過execSQL方法來執(zhí)行一條SQL語句。String CREATE_TABLE="create table 表名(列名,列名,……)";mSQLiteDatabase.execSQL(CREATE_TABLE);
2.以使用insert方法來添加數(shù)據(jù),但是insert方法要求把數(shù)據(jù)都打包到ContentValues中,ContentValues其實(shí)就是一個(gè)Map,Key值是字段名稱,Value值是字段的值。通過ContentValues的put方法就可以把數(shù)據(jù)放到ContentValues對(duì)象中,然后插入到表中去。具體實(shí)現(xiàn)如下:pre t="code" l="java"ContentValues cv=new ContentValues();
cv.put(TABLE_NUM,1);
cv.put(TABLE_DATA,"測(cè)試數(shù)據(jù)庫數(shù)據(jù)");
mSQLiteDatabase.insert(Test,null,cv);
//同樣可以使用execSQL方法來執(zhí)行一條“插入“的SQL語句
String INSERT_DATA="insert into 表名(列名,……) values (值,……)";
mSQLiteDatabase.execSQL(INSERT_DATA);
3.創(chuàng)建TextView對(duì)象,并賦值TextView textView = (TextView) finadViewById(R.id.textView);textView.setTextView(text);