2016-09-22 55 views
0

从数据库多个列中的值这是我的代码:如何显示在一行中的Android

@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; 
} 

,输出为。 。 output

我怎么能在一个同时显示电子邮件行?

+0

你可以为此创建自定义列表视图,否则您可以在单个字符串中拼接名称和电子邮件并添加到array_list。 –

+0

将所有内容存储在一个字符串中并将其添加到数组列表中。 –

回答

3

你在你的列表中添加这两种nameemail作为单独listitems所以combine它们作为单个条目。

在while循环做到这一点

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)));