Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在ListView上显示同一表中的多个列数据?_Android_Sqlite_Android Listview - Fatal编程技术网

Android 如何在ListView上显示同一表中的多个列数据?

Android 如何在ListView上显示同一表中的多个列数据?,android,sqlite,android-listview,Android,Sqlite,Android Listview,我的ListView当前只能显示一列数据。我希望它显示两列数据 以下是我的ListView的代码: public class ProjectExplorer extends ListActivity { private projectdatabase database; protected Cursor cursor; protected ListAdapter adapter; @Override protected void onCreate(Bundle savedInstanceSt

我的ListView当前只能显示一列数据。我希望它显示两列数据

以下是我的ListView的代码:

public class ProjectExplorer extends ListActivity {

private projectdatabase database;
protected Cursor cursor;
protected ListAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    database = new projectdatabase(ProjectExplorer.this);

    getinfo();
}

private void getinfo() {

    database.open();
    cursor = database.getDataforDisplay();
    adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, new String[] {"project_name"}, new int[] { android.R.id.text1 }, 0);
    setListAdapter(adapter);

}

@Override
public void onListItemClick(ListView parent, View view, int position, long id) {

    super.onListItemClick(parent, view, position, id);

    Cursor c = ((SimpleCursorAdapter)parent.getAdapter()).getCursor();
      c.moveToPosition(position);

      // get project name here

      String str_projectname= c.getString(c.getColumnIndex("project_name"));

      Toast.makeText(this, str_projectname, Toast.LENGTH_LONG).show();


}      
以下是数据库类中返回光标的方法:

public Cursor getDataforDisplay () {    

    String[] columns = new String[] {KEY_ROWID, PROJECT_NAME, PROJECT_FINISH_DATE, PROJECT_DIFFICULTY, PROJECT_STATUS};
    Cursor c = projectDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);

    projectDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);

    c.moveToFirst();
    return c;

}

我还想显示KEY_ROWID,它被定义为_id

,您可以使用android.R.layout.simple_list_item_2从表中指定第2列,从中可以检索数据,并指定在活动-android.R.id.text2上显示数据的位置

  adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String[] {"project_name","column_no2"}, new int[] { android.R.id.text1, andriod.R.id.text2 }, 0);

您还可以在自定义适配器上创建您自己的Listview,并从头开始创建它和自定义所有内容。

您可以使用android.R.layout.simple\u list\u item\u 2从表中指定第2列,从中可以检索数据,并指定在活动-android.R.id.text2上显示数据的位置

  adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String[] {"project_name","column_no2"}, new int[] { android.R.id.text1, andriod.R.id.text2 }, 0);

您还可以在自定义适配器上创建自己的Listview,指定自己的Listview,从头开始创建它,并自定义所有内容。

实现这一点的最佳方法至少在我看来是为您的Listview创建自定义适配器。在这种情况下,您可以设置您自己的设计单个Listview元素的外观。只需使用
光标填充一些数组
,并将它们设置为自定义适配器。

实现这一点的最佳方法至少在我看来是为
ListView创建自定义适配器
,在这种情况下,您可以自行设置单个ListView元素的外观。只需使用
光标
填充一些数组,并将它们设置为自定义适配器