如何从db.select添加数据全部请再次检查

时间:2013-08-20 18:23:33

标签: android listview

现在我尝试使用适配器。但我不明白如何从数据中设置值。在朋友中的数据= db.selectall,朋友中的值有3个值(fname,lname,昵称)。所以我的问题是如何设置值(fname / lname / nickname OR one or另一个)我的代码现在看起来像这样::::

package com.example.sqlite;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.sqlite.db.FriendsDB;
import com.example.sqlite.entry.FriendEntry;

public class FriendsListActivity extends Activity {
private Context context;
private FriendsDB db;
private ArrayList<FriendEntry> friends;
    private ArrayList<String> data;
private TextView hellotext;
private ListView hellolistview;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.friendlist_layout);

}
public void showAllList(){
    //view matching
    hellotext = (TextView) findViewById(R.id.hellotext);
    hellolistview = (ListView) findViewById(R.id.hellolistview);
    //select data
    friends = db.selectAll();
        if(friends.size()==0){
            Toast.makeText(context,"You dont have any friend.",Toast.LENGTH_SHORT).show();
        }else{
            data = new ArrayList<String>();
            for (int i = 1;i<=friends.size();i++){
            // set value for data   


            **data.add("Your Name is "+friends["fname"]);<< I want to add data like this .How to correct**  


            }
        }
    }

private class adapter extends BaseAdapter{
    private Holder holder;
    @Override
        //ดาต้ามีกี่แถว
    public int getCount() {
        // TODO Auto-generated method stub
        return friends.size();
    }

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

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

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        //create
        if( view == null){
            view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_layout,null);
            holder = new Holder();
            holder.title = (TextView) view.findViewById(R.id.item_title);
            view.setTag(holder);
        }else{
            holder = (Holder) view.getTag();
        }

        //assign data / wait for data 

        return null;
    }

    private class Holder{
            //view แต่ละตัวเก็บค่าอะไรบ้าง
        public TextView title;
    }
}


}

2 个答案:

答案 0 :(得分:0)

当您在Cursor中有数据且想要在ListView中显示数据时,您需要使用CursorAdapter

您可以使用预定义的SimpleCursorAdapter,也可以使用自定义视图,也可以扩展CursorAdapter类。

此处的教程:http://thinkandroid.wordpress.com/2010/01/11/custom-cursoradapters/

答案 1 :(得分:0)

你一直都在做,但我建议你使用HashMap类型的ArrayList,而不是使用Friends类。

这将降低您的申请负担。

ArrayList<HashMap<Object,String>> list=new  ArrayList<HashMap<Object,String>>();
HashMap<Object,String> hm;