密碼盒 基本功能都實現了 下來分享源碼 適合剛接觸sqlite數據庫的親們使用


做這個之初是因為女朋友老是忘了自己的很多賬號,所以就萌生了一個給他做一個android應用的想法,用了5天吧  ,實現了基本功能,賬號添加  刪除 修改 都是基於sqlite數據庫的。程序很一般,拿出來和大家分享下。牛人就不用看了,新手還是值得學習的!

總共有四個activity:下面這個是顯示賬號列表的

package com.example.passwordbox;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import database.DBAdapter;
import database.goods;
import ImageAdapter.listAdapter;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class AccountlistActivity extends Activity  implements OnItemClickListener ,OnMenuItemClickListener{
    Button btn1=null;
    Button btn2=null;
    private ListView listview;
    DBAdapter db=null;
    @SuppressWarnings("rawtypes")
    List list=null;
    goods good = null;
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);   
        setContentView(R.layout.accountlist);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);  //titlebar為自己標題欄的布局
       listview=(ListView)findViewById(R.id.list);
     
       db = new DBAdapter(this);
       db.open();
        btn1=(Button)findViewById(R.id.buttonn);
        btn1.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                Intent intent1=new Intent();
                intent1.setClass(AccountlistActivity.this, NewActivity.class);
                startActivity(intent1);
                AccountlistActivity.this.finish();
            }
        });
        btn2=(Button)findViewById(R.id.buttonm);
        btn2.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                Intent intent2=new Intent();
                intent2.setClass(AccountlistActivity.this, NewActivity.class);
                startActivity(intent2);
                AccountlistActivity.this.finish();
            }
        });
        listview.setOnCreateContextMenuListener(new OnCreateContextMenuListener(){
            
            @Override
            public void onCreateContextMenu(ContextMenu menu, View v,
                    ContextMenuInfo menuInfo) {
                
                // TODO Auto-generated method stub
                    menu.setHeaderTitle("請選擇操作");      
                    menu.add(0, 0, 0, "刪除");  
                    menu.add(0, 1, 0, "修改");      
                
            }
            
        });
        show(); 
    }
    
  //長按菜單響應函數   
    @Override   
    public boolean onContextItemSelected(MenuItem item) {   
        //setTitle("點擊了長按菜單里面的第"+item.getItemId()+"個項目");
          final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item 
                  .getMenuInfo(); 
          int id = (int)info.id;//這里的info.id對應的是item對應的值
        if(item.getItemId()==0)
        {
            //根據id刪除
            db.open();
            //int id = (int)info.id;//這里的info.id對應的是item對應的值
            showall();
            int m=((goods)list.get(id)).getId();
            Log.i("刪除ID值", ""+id);
         
           // moveToPosition(id) 
            // db.deleteTitle(id);
            db.deleteTitle(m);
              db.close();
            Toast.makeText(getApplicationContext(), "刪除成功",
                    Toast.LENGTH_SHORT).show();
            show();
        }
        else
        {
           //根據id
             LayoutInflater factory = LayoutInflater.from(this);  
                final View textEntryView = factory.inflate(R.layout.reserve, null);  
                final EditText editTextName = (EditText) textEntryView.findViewById(R.id.editTextName);  
                final EditText editTextNumEditText = (EditText)textEntryView.findViewById(R.id.editTextNum); 
                final EditText editTextaccEditText = (EditText)textEntryView.findViewById(R.id.edit);
                AlertDialog.Builder ad1 = new AlertDialog.Builder(AccountlistActivity.this);  
                ad1.setTitle("修改賬戶及密碼:");  
                ad1.setIcon(android.R.drawable.ic_dialog_info);  
                ad1.setView(textEntryView); 
                 db.open();
                // int id = (int)info.id;//這里的info.id對應的就是item的行號
                  showall();
                 editTextaccEditText.setText(((goods)list.get(id)).getName());
                 editTextName.setText(((goods)list.get(id)).getAccount());
                 editTextNumEditText.setText(((goods)list.get(id)).getPass());
                  Log.i("修改賬號", ""+((goods)list.get(id)).getAccount());
               
                  ad1.setPositiveButton("是", new DialogInterface.OnClickListener() {  
                    public void onClick(DialogInterface dialog, int i) {  
                          
                        Log.i("111111", editTextName.getText().toString());  
                
                     int id = (int)info.id;
                     String name=editTextaccEditText.getText().toString();
                     String account=editTextName.getText().toString();
                     String pass=editTextNumEditText.getText().toString();  
                     Log.i("修改ID值", ""+id);
                      
                      int m=((goods)list.get(id)).getId();   
                    //Log.i("刪除ID值", ""+id);
                       db.updateTitle(m, name,account, pass);
                       db.close(); 
                       show();
                       Toast.makeText(getApplicationContext(), "修改成功",
                             Toast.LENGTH_SHORT).show();  
                    }  
                });  
                ad1.setNegativeButton("否", new DialogInterface.OnClickListener() {  
                    public void onClick(DialogInterface dialog, int i) {  
          
                    }  
                });  
                ad1.show();// 顯示對話框  
                
                          
        }
        
        return super.onContextItemSelected(item);   
    }   
//    protected void showAddDialog() {  
//          
//       
//  
//    }  
   
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public void show()
    {
        
        db.open();
        showall();
        Log.i("查詢結果", "內容"+list.toString());
         listAdapter adapter = new listAdapter(this.getApplicationContext(), list);
         db.close();
         listview.setAdapter(adapter);
            
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.accountlist, menu);
        
        return true;
    }
    
    @Override
    //id被點擊元素的行id
    //視圖在adapter中的位置
    //在AdapterView中被點擊的視圖(它是由adapter提供的一個視圖)
    public void onItemClick(AdapterView<?> AdapterViewparent, View view, int position, long id) {
        // TODO Auto-generated method stub
          if(id<-1) {
                // 點擊的是headerView或者footerView
                return;
            }
            int realPosition=(int)id;
          //  T item=getItem(realPosition);
            // 響應代碼

            
    }
public List showall()
{
    list=new ArrayList();
    
    Cursor cur=db.getAllTitles();
    if(cur==null)
    {
        Log.i("查詢結果", "weikong");
    }
    
    for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())
     {
         good=new goods();//必須每次new一個對象  才能使得list add()不斷添加
         int idColumn=cur.getColumnIndex("_id");
         int nameColumn = cur.getColumnIndex("name");
         int accColumn = cur.getColumnIndex("account");
         int phoneColumn = cur.getColumnIndex("pass");
        
         String name = cur.getString(nameColumn);
         String pass = cur.getString(phoneColumn);
         String account=cur.getString(accColumn);
         String id=cur.getString(idColumn);
         good.setId((int)Integer.parseInt(id));
         good.setName(name);
         good.setAccount(account);
         good.setPass(pass);
         Log.i("查詢結果", "weikong"+good.getName());   
         list.add(good);
     }
    return list;
}
    @Override
    public boolean onMenuItemClick(MenuItem arg0) {
        // TODO Auto-generated method stub
        return false;
    }

}
    

下面這個是程序啟動頁面:

package com.example.passwordbox;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;

public class RunActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.run);
        new Handler().postDelayed(new Runnable(){
            public void run()
            {
                RedirectNewActivity();
            }
            
        }, 2000);
    }
    
    public void RedirectNewActivity()
    {
        Intent intent=new Intent();
        intent.setClass(RunActivity.this, NewActivity.class);
        startActivity(intent);
        RunActivity.this.finish();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.run, menu);
        return true;
    }
}

下面這個是進去程序后的主頁面:

package com.example.passwordbox;

import ImageAdapter.imageAdapter;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageButton;

public class NewActivity extends Activity implements OnItemClickListener, OnClickListener{
    private Resources resMgr = null;
    Button bt1=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
         
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
        setContentView(R.layout.news);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);  //titlebar為自己標題欄的布局
        resMgr=getResources();
        bt1=(Button)findViewById(R.id.buttonn);
        bt1.setOnClickListener(this);
        GridView gridView = (GridView) findViewById(R.id.gridView1);

        String strContent[] = { resMgr.getString(R.string.add),
                resMgr.getString(R.string.show),
             };

        gridView.setAdapter(new imageAdapter(this, strContent));
        gridView.setOnItemClickListener(this);
    }

    private void close() {
        new AlertDialog.Builder(this)
                // .setIcon(R.drawable.services)
                .setTitle(R.string.MAINACTIVITY_POPUP_QUIT_TITLE)
                .setMessage(R.string.MAINACTIVITY_POPUP_QUIT_MESSAGE)
                .setNegativeButton(R.string.MAINACTIVITY_POPUP_QUIT_CANCEL,
                        new DialogInterface.OnClickListener() {
                            // @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                            }
                        })
                .setPositiveButton(R.string.MAINACTIVITY_POPUP_QUIT_OK,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int whichButton) {
                                finish();
                                //System.exit(0);
                            }
                        }).show();
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.app.Activity#dispatchKeyEvent(android.view.KeyEvent)
     */
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        // TODO Auto-generated method stub
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            if (event.getAction() == KeyEvent.ACTION_DOWN
                    && event.getRepeatCount() == 0) {
                close();// 這是自定義的代碼
            }
            return true;
        }
        return super.dispatchKeyEvent(event);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        menu.add(0,0,0,"設置");//第二個參數是menu的id,第4個參數是菜單顯示的內容,其余的不重要。
        menu.add(0,1,0,"關於");
        menu.add(0,2,0,"退出");
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        super.onOptionsItemSelected(item);
        switch(item.getItemId())
        {
        case 0:
            break;
        case 1:
            
            
            new AlertDialog.Builder(this)  
            
                            .setTitle("關於")
            
                            .setMessage("本軟件為愛心制作")
            
                            .setPositiveButton("確定", null)
            
                            .show();
            break;
        case 2:
            this.finish();
            break;
        
        }
        return true;
    }


    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long arg3) {
        // TODO Auto-generated method stub
        switch(position){
        case 0:
        {
            Intent intent1=new Intent();
            intent1.setClass(NewActivity.this, AddaccountActivity.class);
            startActivity(intent1);
            NewActivity.this.finish();
            break;
        }
        case 1:
        {
            Intent intent2=new Intent();
            intent2.setClass(NewActivity.this, AccountlistActivity.class);
            startActivity(intent2);
            NewActivity.this.finish();
            break;
        }
            
        }
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub

        if (keyCode == KeyEvent.KEYCODE_BACK) {
            close();
            return true;
        } else {
            return super.onKeyDown(keyCode, event);
        }

    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
         close();
    }
}

下面這個是添加賬號信息的activity:

package com.example.passwordbox;

import database.DBAdapter;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class AddaccountActivity extends Activity {
    private Button btt1=null;
    private Button btt2=null;
    private Button btt3=null;
    EditText tx1=null;
    EditText tx2=null;
    EditText tx3=null;
    DBAdapter db=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);   
        setContentView(R.layout.addaccount);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);  //titlebar為自己標題欄的布局
        db = new DBAdapter(this);

        tx1=(EditText)findViewById(R.id.editText1);
        tx2=(EditText)findViewById(R.id.editText2);
        tx3=(EditText)findViewById(R.id.editTextacc);
        btt1=(Button)findViewById(R.id.buttonn);
        btt1.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                Intent intent1=new Intent();
                intent1.setClass(AddaccountActivity.this, NewActivity.class);
                startActivity(intent1);
                AddaccountActivity.this.finish();
            }
        });
        btt2=(Button)findViewById(R.id.buttonm);
        btt2.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                Intent intent2=new Intent();
                intent2.setClass(AddaccountActivity.this, NewActivity.class);
                startActivity(intent2);
                AddaccountActivity.this.finish();
            }
        });
        btt3=(Button)findViewById(R.id.button10);
        btt3.setOnClickListener(new Button.OnClickListener()
        {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(tx1.getText().length()!=0||tx1.getText().length()!=0)
                {    
                    db.open();
                     long id=db.insertTitle(tx1.getText().toString(),tx3.getText().toString(), tx2.getText().toString());
                     Log.i("插入結果", "id"+id);
                     db.close();
                    Intent intent2=new Intent();
                    intent2.setClass(AddaccountActivity.this, AccountlistActivity.class);
                    startActivity(intent2);
                    AddaccountActivity.this.finish();
                }
                else
                {
                new AlertDialog.Builder(AddaccountActivity.this).setMessage("本框不能為空!").setPositiveButton("確定", null).show(); 
                }
            }
            
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.addaccount, menu);
      
        return true;
    }
}

實體類:

package database;

public class goods {
    private int id;
    private String name;
    private String account;
    private String pass;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPass() {
        return pass;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }
    

}

數據庫操作類:

package database;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

//庫表中兩個字段AppName  AppPass
public class DBAdapter {
    
    public static final String KEY_ROWID = "_id";
    public static  final String AppName="name";
    public static  final String AppAccount="account";
    public static final String AppPass="pass";
    private static final String TAG = "DBAdapter";
    private static final String DATABASE_NAME = "BOX";
    private static final String DATABASE_TABLE = "yuyu";
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_CREATE =
    "create table yuyu (_id integer primary key autoincrement, "
    + "name text not null,account text not null, pass text not null);";
    private final Context context;
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
    
    public DBAdapter(Context ctx)
    {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
    }
    
    
    private static class DatabaseHelper extends SQLiteOpenHelper
    {
    DatabaseHelper(Context context)
    {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    //創建一個新的數據庫
    public void onCreate(SQLiteDatabase db)
    {
    db.execSQL(DATABASE_CREATE);
    }
    //升級數據庫
    public void onUpgrade(SQLiteDatabase db, int oldVersion,
    int newVersion)
    {
    Log.w(TAG, "Upgrading database from version " + oldVersion
    + " to "
    + newVersion + ", which will destroy all old data");
    db.execSQL("DROP TABLE IF EXISTS titles");
    onCreate(db);
    }
    }
    //---打開數據庫---

    public DBAdapter open() throws SQLException
    {
    db = DBHelper.getWritableDatabase();
    return this;
    }
    //---關閉數據庫---

    public void close()
    {
    DBHelper.close();
    }
    //---向數據庫插入一個標題---

    public long insertTitle(String name,String account ,String pass)
    {
    ContentValues initialValues = new ContentValues();
    //initialValues.put(KEY_ROWID, _id);
    initialValues.put(AppName, name);
    initialValues.put(AppAccount, account);
    initialValues.put(AppPass, pass);
    return db.insert(DATABASE_TABLE, null, initialValues);
    }
    //---刪除一個指定的標題---

    public boolean deleteTitle(long rowId)
    {
    return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
    }
    //---檢索所有標題---

    public Cursor getAllTitles()
    {
    return db.query(DATABASE_TABLE, new String[] {KEY_ROWID,AppName,AppAccount,AppPass},null,null,null,null,null);
    }
    //---檢索一個指定的標題---

    public Cursor getTitle(long rowId) throws SQLException
    {
    Cursor mCursor =
    db.query(true, DATABASE_TABLE, new String[] {
    KEY_ROWID,
    
    AppName,
    AppAccount,
    AppPass
    },
    KEY_ROWID + "=" + rowId,
    null,
    null,
    null,
    null,
    null);
    if (mCursor != null) {
    mCursor.moveToFirst();
    }
    return mCursor;
    }
    //---更新一個標題---

    public boolean updateTitle(long rowId,
    String name,String account, String pass)
    {
    ContentValues args = new ContentValues();
    args.put(AppName, name);
    args.put(AppAccount, account);
    args.put(AppPass, pass);
    return db.update(DATABASE_TABLE, args,
    KEY_ROWID + "=" + rowId, null) > 0;
    }


}

主頁面上兩個圖標的適配類:

package ImageAdapter;




import com.example.passwordbox.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;



public class imageAdapter extends BaseAdapter {
    private Integer[] arrImage = { R.drawable.epurse, R.drawable.ecard,
             };

    String arrText[] = null;// {"登錄", "充值", "消費", "查詢余額", "歷史記錄", "設置", "關於",
                            // "幫助","退出"};
    private Context mContext;

    public imageAdapter(Context context, String[] arrText) {
        mContext = context;
        this.arrText = arrText;
    }

    public int getCount() {
        return arrImage.length;
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.widget.Adapter#getView(int, android.view.View,
     * android.view.ViewGroup)
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder = new ViewHolder();
        if (convertView == null) {
            LayoutInflater mInflater = LayoutInflater.from(mContext);
            convertView = mInflater.inflate(R.layout.item, null);
            holder.image = (ImageView) convertView.findViewById(R.id.ItemImage);
            holder.text = (TextView) convertView.findViewById(R.id.ItemText);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();// imageview=(ImageView)
                                                        // convertView;
        }
        holder.image.setImageResource(arrImage[position]);
        holder.text.setText(arrText[position]);
        return convertView;
    }

    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    private static class ViewHolder {
        ImageView image;// 圖片
        TextView text;// 文字
    }
}

list列表的適配類:

package ImageAdapter;

import java.util.List;

import com.example.passwordbox.R;

import database.goods;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class listAdapter extends BaseAdapter{
        private List<goods> list;//綁定的數據集
        //private int source;//資源布局文件
        Context mContext;
        private LayoutInflater inflater;    
        //布局填充器,Android的內置服務,作用:使用xml文件來生成對應的view對象
        public listAdapter (Context context,List<goods> good)//int resource
        {
            this.list=good;
            //this.source=resource;
            this.mContext=context;
             //得到布局填充服務
            inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return list.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return arg0;
    }

    @Override
    
    public View getView(int position, View convertView, ViewGroup arg2) {
        // TODO Auto-generated method stub
          //判斷是否為第一頁
          //提供緩存機制
          ViewCache cache;
         if(convertView == null){
         //為條目創建View對象,生成條目界面對象
        convertView = inflater.inflate(R.layout.txview, null);
         //得到當前條目的數據
         cache = new ViewCache();
        cache .name = (TextView)convertView.findViewById(R.id.textView5);
        cache .account = (TextView)convertView.findViewById(R.id.textView6);
        
        cache.pass = (TextView)convertView.findViewById(R.id.textView7);
          
         //用視圖標識臨時存放緩存數據
          // convertView.setTag(cache);
                
         }
         else
         {
             cache = (ViewCache) convertView.getTag();

         }

         //得到當前條目對象
          goods stu=new goods();
          stu = list.get(position);
          Log.i("list內容", ""+list.toString());
         //為當前條目賦值
          
          cache.name.setText("        "+stu.getName().toString()+"     ");
          cache.account.setText("         "+stu.getAccount());//轉化成string
          cache.pass.setText("                   "+stu.getPass().toString());
         convertView.setTag(cache);
        return convertView;

    }
    private final class ViewCache
    {
        
        public TextView name;
        public TextView account;
        public TextView pass;
    }

}

具體的layout有好幾個  不在這貼了,想要的同學可以找我,我發給你    我的qq:405356078   加的時候注明博客園   否則不加

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM