안 드 로 이 드 기초 3 일 째

14227 단어
1 Android 데이터베이스 생 성
                  ?                 。
mysql sqlserver2000  sqlite        

SqliteOpenHelper

       :
1.       SqliteOpenHelper,          ,      oncreate ,onupgrade
              :

    //context :      , name:            factory:    cursor  ,   null 
    //version:       , 1  ,      ,onUpgrade      ,4.0        
    super(context, "info.db", null,1);
    

2.            ,  getReadableDatabase()  ,              

3.  oncreate onupgrdate  :
    oncreat e                  ;              ,    sql  ;SQLiteDatabase db      sql  
    
    //onUpgrade               ;            

       getWritableDatabase   getReadableDatabase                  SqliteDatabase.

  :
getReadableDatabase:
                 ,        ,                。
getWritableDatabase:
                ,        ,     。

2 안 드 로 이 드 데이터베이스 첫 번 째 방식 추가 삭제 검사
1.          ,  getReadableDatabase  ,    SqliteDatebase  

2.  SqliteDatebase    execSql()    ,  rawQuery     。

******  :        ,    sql        。sql     ,    

private MySqliteOpenHelper mySqliteOpenHelper;
public InfoDao(Context context){
    //         
    mySqliteOpenHelper = new MySqliteOpenHelper(context);

    
}

public void add(InfoBean bean){

    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase     db = mySqliteOpenHelper.getReadableDatabase();
    //sql:sql  ,  bindArgs:sql        
    db.execSQL("insert into info(name,phone) values(?,?);", new Object[]{bean.name,bean.phone});
    //       
    db.close();
}

public void del(String name){

    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
    //sql:sql  ,  bindArgs:sql        
    db.execSQL("delete from info where name=?;", new Object[]{name});
    //       
    db.close();

}
public void update(InfoBean bean){

    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
    //sql:sql  ,  bindArgs:sql        
    db.execSQL("update info set phone=? where name=?;", new Object[]{bean.phone,bean.name});
    //       
    db.close();

}
public void query(String name){
    
    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
    //sql:sql  ,  selectionArgs:         ,    cursor  
    Cursor cursor = db.rawQuery("select _id, name,phone from info where name = ?", new String []{name});
    //  Cursor    
    if(cursor != null && cursor.getCount() >0){//  cursor       
        
        //       ,        
        while(cursor.moveToNext()){//  ,          
            //    
            int id = cursor.getInt(0);
            String name_str = cursor.getString(1);
            String phone = cursor.getString(2);
            System.out.println("_id:"+id+";name:"+name_str+";phone:"+phone);
        }
        cursor.close();//     
        
    }
    //       
    db.close();

}

3 안 드 로 이 드 의 다음 추가 삭제 검사 방식
1.          ,  getReadableDatabase  ,    SqliteDatebase  

2.  SqliteDatebase    insert,update,delete ,query       。

******  :        ,    sql        ,        ,       。                   ,        。

        private MySqliteOpenHelper mySqliteOpenHelper;
public InfoDao(Context context){
    //         
    mySqliteOpenHelper = new MySqliteOpenHelper(context);
}

public boolean add(InfoBean bean){ 
    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase     db = mySqliteOpenHelper.getReadableDatabase();
    
    
    ContentValues values = new ContentValues();//  map     ,     
    values.put("name", bean.name);
    values.put("phone", bean.phone);
    
    //table:    , nullColumnHack:    ,        , values:       ,    :         Id ,-1      
    long result = db.insert("info", null, values);//      sql  

    //       
    db.close();
    
    if(result != -1){//-1      
        return true;
    }else{
        return false;
    }
}

public int del(String name){

    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
    
    //table :  , whereClause:     , whereArgs:          ;    :       
    int result = db.delete("info", "name = ?", new String[]{name});
    //       
    db.close();
    
    return result;

}
public int update(InfoBean bean){

    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
    ContentValues values = new ContentValues();//  map     ,     
    values.put("phone", bean.phone);
    //table:  , values:    , whereClause:     , whereArgs:          ,   :       
    int result = db.update("info", values, "name = ?", new String[]{bean.name});
    //       
    db.close();
    return result;

}
public void query(String name){

    //  sql    sqliteDatabase  
    //  getReadableDatabase  ,          
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
    
    //table:  , columns:     ,  null       ; selection:    , selectionArgs:         ,
    //groupBy:       , having:     , orderBy:       
    Cursor cursor = db.query("info", new String[]{"_id","name","phone"}, "name = ?", new String[]{name}, null, null, "_id desc");
    //  Cursor    
    if(cursor != null && cursor.getCount() >0){//  cursor       
        
        //       ,        
        while(cursor.moveToNext()){//  ,          
            //    
            int id = cursor.getInt(0);
            String name_str = cursor.getString(1);
            String phone = cursor.getString(2);
            System.out.println("_id:"+id+";name:"+name_str+";phone:"+phone);
            
            
        }
        cursor.close();//     
        
    }
    //       
    db.close();

}

4 데이터베이스 의 사무
  :     sql  ,        ,        ,      ,    

    

//         
public void transtation(View v){
    //1.          
    BankOpenHelper bankOpenHelper = new BankOpenHelper(this);
    //2.           getReadableDatabase     ,      ,    SqliteDatabase      (sql  )
    SQLiteDatabase db = bankOpenHelper.getReadableDatabase();
    //3.  ,      200,   200
    db.beginTransaction();//         
    try {
        db.execSQL("update account set money= money-200 where name=?",new String[]{"  "});
        int i = 100/0;//      
        db.execSQL("update account set money= money+200 where name=?",new String[]{"  "});

        db.setTransactionSuccessful();//      sql        
    } finally {
        db.endTransaction();//           ,     ,         sql   
    }
}

5 listview 입문
    ListView      ,                    ,            ListAdapter 。EditText Button TextView ImageView Checkbox     。

    1.    Listview
     
    2.  listview

    3.      myAdapter     BaseAdapter(    ),   4   ,
         
        int getcount:  listview          
           object getview:  listview         。

      

     4.  Adapter     ,   listview。
            listview.setAdapter(ListAdapter adapter);

6 listview 최적화
adapter getview()          convertView,convertView        view  ,       ,              ,       ,   getview       。

        TextView view = null;
        if(convertView != null){//  converView    ,       
            view = (TextView) convertView;
        }else{
            view = new TextView(mContext);//    textView  
        }
        return view;

7 listview --- 호랑이 기계
javaweb mvc
m....mode....javabean
v....view....jsp
c....control...servlet

listview mvc
m....mode....Bean
v....view....listview
c....control...adapter

8 listview 디 스 플레이 원리 (이해)
1.   listview           int getcount()
2.  listview              view getview()
3.    item   ,             ,            ,
4.    listview   ,          ,        。

9 복잡 한 listview 인터페이스 표시, 다크호스 뉴스 (* * * * * * * * 중요 * * * * * * * * * * * * * * * * *)
1.   listview

2.  listview    

3.           list    ,(            myadapter)  myadapter     ,   listView       

4.      myadapter  BaseAdapter。            list            4    
  //           
    a.         
    b.       4    
     
           getcount():         ,       。
           getItem  : list     postion  bean    
           getItemId,    postion
           getView():                   ;             。
                 1.  convertview,    。        。     ,            view      getview     。
                           if(view.convertView!=null){  
                      view = View.inflater(Context context, int resuorceId,ViewGroup root)
                   2.  view       ,    list    bean        /          

                  3. list     postion         Bean
        
                    4.    bean      /            
     
public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;
    //1.  converView  listview,    view    getview()            
    if(convertView != null){
        view = convertView;
    }else {
         //view = View.inflater(Context context, int resuorceId,ViewGroup root)
        //context:   , resource:    view   layout id, root: layout root(ViewGroup)     getview    ,   null
        view = View.inflate(context, R.layout.item_news_layout, null);//            view  
    }
    //2.  view        //   list      bean                  
    ImageView item_img_icon = (ImageView) view.findViewById(R.id.item_img_icon);
    TextView item_tv_des = (TextView) view.findViewById(R.id.item_tv_des);
    TextView item_tv_title = (TextView) view.findViewById(R.id.item_tv_title);

    //3.   list     Bean         ,   postion         
    NewsBean newsBean = list.get(position);
    //4.   bean       ,  /                   
    item_img_icon.setImageDrawable(newsBean.icon);//  imageView   
    item_tv_title.setText(newsBean.title);
    item_tv_des.setText(newsBean.des);
    
    return view;
}
    
5.       myadapter    /   listview  
      

6.  listview        item     ,         ,        ,       。  
   
    //  listview       //       
    lv_news1.setOnItemClickListener(this);
   lv_news2.setOnItemClickListener(this);
   lv_news3 .setOnItemClickListener(this);


        //   OnItemClicklistener()  ,          bean    ,     url  , Intent   
        //listview             parent:  listviw  view:         view     position:       id:     id
          public void onItemClick(AdapterView> parent, View view, int position,
        long id) {
    
    //       bean   url   
    NewsBean bean = (NewsBean) parent.getItemAtPosition(position);
    
    String url = bean.news_url;
    
    //     
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(Uri.parse(url));
    startActivity(intent);
}





1.   listview ok

2.  listview ok 

3.           list    ,    Myadapter         。 ok 

4.    Adapter   BaseAdatper,         list    ,      
    a.          ok 
    b.  getCount     ok 
    c.getView  :    ok
        1.  convertview,    ,      ,            view    getview     。
            view = View.inflater(Context context, int resuorceId,ViewGroup root)
        2.  view       ,    list    bean              

        3. list     postion         Bean
        
        4.    bean            
    d.getItem  : list     postion  bean    
    e.getItemId,    postion

5.       Adapter  ,   listview   ok
6.  listview         ok
    listview.setOnItem....

7.  OnItemClicklistener  ,        bean  ,     url, Intent  ;   ok

10 xml 레이아웃 을 view 대상 으로 변환 하 는 세 가지 방식
        1.
        //context:   , resource:    view   layout id, root: layout root(ViewGroup)     codify    ,   null
            //view = View.inflate(context, R.layout.item_news_layout, null);//            view  

        2.
        //  LayoutInflater xml        view  
        //view =  LayoutInflater.from(context).inflate(R.layout.item_news_layout, null);
        
        3.
        //  context          LayoutInflater,  LayoutInflater        view  
        LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = layoutInflater.inflate(R.layout.item_news_layout, null);

11. arrayadapter (보지 마 세 요. 이것 만 있 으 면 됩 니 다)
    //    
    ListView lv_array = (ListView) findViewById(R.id.lv_array);
    ListView lv_simple = (ListView) findViewById(R.id.lv_simple);
    
    //    arrayAdapter
//context  , resource:  id, textViewResourceId:      textview   id, objects:   texitview     
    ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.item_listview_layout, R.id.item_tv_class, classz);
    lv_array.setAdapter(arrayAdapter);

12 simpledapter (안 봐 도 돼, 이거 있 는 거 알 면 돼)
    //    simpleAdapter,  simpleAdapter   
    ArrayList> arrayList = new ArrayList>();
    HashMap hashMap = new HashMap();
    hashMap.put("class", "C++");
    arrayList.add(hashMap);
    
    HashMap hashMap1 = new HashMap();
    hashMap1.put("class", "android");
    arrayList.add(hashMap1);
    
    
    HashMap hashMap2 = new HashMap();
    hashMap2.put("class", "javaEE");
    arrayList.add(hashMap2);
    
    //context, data:     , resource:item  id, from: map  key, to:      id
    SimpleAdapter simpleAdapter = new SimpleAdapter(this, arrayList, R.layout.item_listview_layout, new String[]{"class"}, new int[]{R.id.item_tv_class});
    
    lv_simple.setAdapter(simpleAdapter);

13. 데이터베이스 의 listview 인터페이스 표시 (뉴스 회, 이것 은 할 수 있 습 니 다)

좋은 웹페이지 즐겨찾기