Android使用适配器动态显示ListView中的值

时间:2013-08-06 12:18:57

标签: android android-adapter android-adapterview android-listview

我是Android的新手,我现在正在学习,Plz帮助meeeeeee .....我想在ListView中显示所有Emp名称使用适配器,我从数据库中获取了值... Plz帮帮我有这个...

这是我的代码......

// POJO Class

public class Emp {

    int id;
    String fName;
    String lName;

    public Emp() {

    }

    public Emp(String fName, String lName){
        this.fName = fName;
        this.lName = lName;
    }

    public Emp(int id, String fName, String lName) {
        this.id = id;
        this.fName = fName;
        this.lName = lName;
    }

    // setter and getters...
}

//布局demo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

     <ListView
         android:id="@+id/empListView"
         android:layout_width="fill_parent"
         android:layout_height="match_parent" >
     </ListView>

</LinearLayout>

// DbHelper

public List<Emp> getAllEmp() {
    List<Emp> empList = new ArrayList<Emp>();
    String selectQuery = "SELECT  * FROM Emp" ;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        do {
            Emp emp = new Emp();
            emp.setId(Integer.parseInt(cursor.getString(0)));
            emp.setfName(cursor.getString(1));
            emp.setlName(cursor.getString(2));
            empList.add(emp);
        } while (cursor.moveToNext());
    }
    return empList;
}

// MainActivity

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.demo);

    DbHelper helper = new DbHelper(getApplicationContext());
    helper.open();

    List<Emp> empList = helper.getAllEmp(); 

   // Here i have to write a logic that to get only fName and set to adaptor...

    list = (ListView) findViewById(R.id.empListView);
    list.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, empList)); 
}

这里我得到了一套emp记录......

这是数据库

|-------|-----------|-----------|
|___id__|___fName___|___lName___|   
|       |           |           |       
|    1  |   Rahul   |   Dravid  |       
|    2  |   Sachin  | Tendulkar |           
|    3  |   Saurav  |   Ganguly |       
|-------|-----------|-----------|

提前致谢...

1 个答案:

答案 0 :(得分:0)

添加你的onCreate()方法

        ArrayList<String> empName = new ArrayList<String>();
    for (int i = 0; i < empList.size(); i++) {
        empName.add(empList.get(i).getFname());
    }
    final ArrayAdapter<String> ListObject = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, empName);
    ListView listView = findViewById(R.id.mylistview);
    listView.setAdapter(ListObject);