如何在单个行中显示多个列的值从 dbandroid

发布时间: 2016/10/10 21:24:53
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

这是我的代码︰

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
   //populateListView();
    mydb = new DBHelper(this);
    ArrayList<String> array_list = mydb.getAllCotacts();
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, array_list);

    ListView obj = (ListView) findViewById(R.id.listView);
    obj.setAdapter(arrayAdapter);
    obj.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // TODO Auto-generated method stub
            int id_To_Search = arg2 + 1;

            Bundle dataBundle = new Bundle();
            dataBundle.putInt("id", id_To_Search);

            Intent intent = new Intent(getApplicationContext(), DisplayContact.class);

            intent.putExtras(dataBundle);
            startActivity(intent);
        }
    });


    b1=(Button)findViewById(R.id.button);
    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent(getApplicationContext(),DisplayContact.class);
            startActivity(i);
        }
    });

}

这是我的 getallcontact 代码...

          public ArrayList<String> getAllCotacts()
{
    ArrayList<String> array_list = new ArrayList<>();

    //hp = new HashMap();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "select * from contacts", null );
    res.moveToFirst();

    while(!res.isAfterLast()){
        array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));
        array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_EMAIL)));
        res.moveToNext();
    } 
    return array_list;
}

输出是...... 输出

在单个行中,如何能显示名称电子邮件

解决方法 1:

添加两个 name email 作为单独的 listitems 您的列表中所以 combine 他们以单个条目。

在你这样做循环

 array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)) +"  "+res.getString(res.getColumnIndex(CONTACTS_COLUMN_EMAIL)));

而这不是

 array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));
 array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_EMAIL)));

再加上对于小好格式,您可以使用新行转义序列"\n"

 array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)) +"\n"+res.getString(res.getColumnIndex(CONTACTS_COLUMN_EMAIL)));
赞助商