如何将数据库中的特定数据显示到sqlitedatabase中的listview
how to display specific data from database to listview in sqlitedatabase
我想显示我的数据库中的特定数据,其中将显示客户公司下的所有项目..如何显示查询结果中的数据..如果发现公司下的多个项目是listview可以列出的怎么办这一切?我是 android 的新手 ..提前致谢
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_module);
lv = (ListView) findViewById(R.id.listView);
btnrefresh = (Button) findViewById(R.id.btncrefresh);
btnrefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor cursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + User.TABLE, null);
if(cursor.moveToFirst())
{
String comnameproj = cursor.getString(5);
Cursor qcursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + Project.TABLE, null);
if(qcursor.getString(8).equals(comnameproj)) {
ProjectCrud pcrud = new ProjectCrud(ClientModule.this);
ArrayList<HashMap<String , String >> projectList = pcrud.getProjectList();
if (projectList.size()!=0){
//entrylist = (ListView) findViewById(R.id.list);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
project_Id = (TextView) view.findViewById(R.id.project_Id);
String projectId = project_Id.getText().toString();
Intent objintent = new Intent(getApplicationContext(),ProjectDetail.class);
objintent.putExtra("project_Id", Integer.parseInt( projectId ));
startActivity(objintent);
}
});
ListAdapter adapter = new SimpleAdapter(ClientModule.this,projectList, R.layout.project_entry, new String []{"id", "title"}, new int[]{R.id.project_Id, R.id.project_title});
lv.setAdapter(adapter);
}else {
Toast.makeText(ClientModule.this, "No Project!", Toast.LENGTH_LONG).show();
}
}
}
}
});
这是我的 table
public class DBHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 4;
private static final String DATABASE_NAME = "mobileorg.db";
public DBHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
String CREATE_TABLE_PROJECT = "CREATE TABLE " + Project.TABLE + "("
+ Project.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ Project.KEY_title + " TEXT,"
+ Project.KEY_type + " TEXT,"
// + Project.KEY_priority + " INTEGER,"
+ Project.KEY_timeframe + " TEXT,"
+ Project.KEY_start + " TEXT,"
+ Project.KEY_end + " TEXT,"
+ Project.KEY_cost + " INTEGER,"
+ Project.KEY_status + " TEXT,"
+ Project.KEY_companyproj + " TEXT" + ");";
db.execSQL(CREATE_TABLE_PROJECT);
String CREATE_TABLE_USER = "CREATE TABLE " + User.TABLE + "("
+ User.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ User.KEY_priv +" TEXT,"
+ User.KEY_username + " TEXT,"
+ User.KEY_usertype + " TEXT,"
+ User.KEY_sex + " TEXT,"
+ User.KEY_usercompany + " TEXT,"
+ User.KEY_usermail + " TEXT,"
+ User.KEY_usercontact + " INTEGER,"
+ User.KEY_useradd + " TEXT,"
+ User.KEY_loguser + " TEXT,"
+ User.KEY_logpass + " TEXT,"
+ User.KEY_logconfirm + " TEXT" + ");";
db.execSQL(CREATE_TABLE_USER);
String CREATE_TABLE_COMPANY = "CREATE TABLE " + Company.TABLE + "("
+ Company.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ Company.KEY_cname + " TEXT,"
+ Company.KEY_cstanding + " TEXT,"
+ Company.KEY_crepres + " TEXT,"
+ Company.KEY_ccontact + " TEXT,"
+ Company.KEY_cemail + " TEXT" + ");";
db.execSQL(CREATE_TABLE_COMPANY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXIST" + Project.TABLE);
db.execSQL("DROP TABLE IF EXIST" + User.TABLE);
db.execSQL("DROP TABLE IF EXIST" + Company.TABLE);
onCreate(db);
}
public static boolean validateUser(String loguser, String logpass){
return false;
}
}
这是我更新的查询版本..但没有任何反应..我的列表视图没有任何显示..
public class ClientModule extends ActionBarActivity {
private DBHelper dbHelper;
Button btnrefresh;
ListView lv ;
TextView project_Id;
String comnameproj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_module);
dbHelper = new DBHelper(ClientModule.this);
lv = (ListView) findViewById(R.id.listView);
btnrefresh = (Button) findViewById(R.id.btncrefresh);
btnrefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor cursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + User.TABLE, null);
if(cursor.moveToFirst()) {
do {
comnameproj = cursor.getString(5);
} while (cursor.moveToNext());
}
Cursor qcursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + Project.TABLE, null);
if (qcursor.moveToFirst()) {
do {
if (qcursor.getString(8).equals(comnameproj)) {
ProjectCrud pcrud = new ProjectCrud(ClientModule.this);
ArrayList<HashMap<String, String>> projectList = pcrud.getProjectList();
if (projectList.size() != 0) {
//entrylist = (ListView) findViewById(R.id.list);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
project_Id = (TextView) view.findViewById(R.id.project_Id);
String projectId = project_Id.getText().toString();
Intent objintent = new Intent(getApplicationContext(), ProjectDetail.class);
objintent.putExtra("project_Id", Integer.parseInt(projectId));
startActivity(objintent);
}
});
ListAdapter adapter = new SimpleAdapter(ClientModule.this, projectList, R.layout.refresh_project, new String[]{"id", "title"}, new int[]{R.id.project_Id, R.id.project_title});
lv.setAdapter(adapter);
} else {
Toast.makeText(ClientModule.this, "No Project!", Toast.LENGTH_LONG).show();
}
}
}while (cursor.moveToNext()) ;
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_client_module, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.exit_client) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
您需要修改您的 SQLite SELECT 查询。由于您想要 select 特定用户拥有的项目列表,您应该如下所示编写查询(我假设您在名为 userCompany
的 String
中指定用户的项目名称):
btnrefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String selectQuery = "SELECT * FROM " + Project.TABLE + " WHERE " + Project.KEY_companyproj " = " + userCompany;
Cursor qCursor = dbHelper.getReadableDatabase().rawQuery(selectQuery, null);
ArrayList<HashMap<String, String>> projectList = new ArrayList<HashMap<String, String>>();
/* loop through all rows and add to list */
if (qCursor.moveToFirst()) {
do {
HashMap<String, String> project = new HashMap<String, String>();
project.put("id", cursor.getString(String.valueOf(cursor.getColumnIndex(Project.KEY_ID))));
project.put("title", cursor.getString(cursor.getColumnIndex(Project.KEY_title)));
projectList.add(project);
} while (qCursor.moveToNext());
}
qCursor.close();
// populate the listview with projectlist here
}
};
如果有帮助请告诉我。
我想显示我的数据库中的特定数据,其中将显示客户公司下的所有项目..如何显示查询结果中的数据..如果发现公司下的多个项目是listview可以列出的怎么办这一切?我是 android 的新手 ..提前致谢
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_module);
lv = (ListView) findViewById(R.id.listView);
btnrefresh = (Button) findViewById(R.id.btncrefresh);
btnrefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor cursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + User.TABLE, null);
if(cursor.moveToFirst())
{
String comnameproj = cursor.getString(5);
Cursor qcursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + Project.TABLE, null);
if(qcursor.getString(8).equals(comnameproj)) {
ProjectCrud pcrud = new ProjectCrud(ClientModule.this);
ArrayList<HashMap<String , String >> projectList = pcrud.getProjectList();
if (projectList.size()!=0){
//entrylist = (ListView) findViewById(R.id.list);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
project_Id = (TextView) view.findViewById(R.id.project_Id);
String projectId = project_Id.getText().toString();
Intent objintent = new Intent(getApplicationContext(),ProjectDetail.class);
objintent.putExtra("project_Id", Integer.parseInt( projectId ));
startActivity(objintent);
}
});
ListAdapter adapter = new SimpleAdapter(ClientModule.this,projectList, R.layout.project_entry, new String []{"id", "title"}, new int[]{R.id.project_Id, R.id.project_title});
lv.setAdapter(adapter);
}else {
Toast.makeText(ClientModule.this, "No Project!", Toast.LENGTH_LONG).show();
}
}
}
}
});
这是我的 table
public class DBHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 4;
private static final String DATABASE_NAME = "mobileorg.db";
public DBHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
String CREATE_TABLE_PROJECT = "CREATE TABLE " + Project.TABLE + "("
+ Project.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ Project.KEY_title + " TEXT,"
+ Project.KEY_type + " TEXT,"
// + Project.KEY_priority + " INTEGER,"
+ Project.KEY_timeframe + " TEXT,"
+ Project.KEY_start + " TEXT,"
+ Project.KEY_end + " TEXT,"
+ Project.KEY_cost + " INTEGER,"
+ Project.KEY_status + " TEXT,"
+ Project.KEY_companyproj + " TEXT" + ");";
db.execSQL(CREATE_TABLE_PROJECT);
String CREATE_TABLE_USER = "CREATE TABLE " + User.TABLE + "("
+ User.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ User.KEY_priv +" TEXT,"
+ User.KEY_username + " TEXT,"
+ User.KEY_usertype + " TEXT,"
+ User.KEY_sex + " TEXT,"
+ User.KEY_usercompany + " TEXT,"
+ User.KEY_usermail + " TEXT,"
+ User.KEY_usercontact + " INTEGER,"
+ User.KEY_useradd + " TEXT,"
+ User.KEY_loguser + " TEXT,"
+ User.KEY_logpass + " TEXT,"
+ User.KEY_logconfirm + " TEXT" + ");";
db.execSQL(CREATE_TABLE_USER);
String CREATE_TABLE_COMPANY = "CREATE TABLE " + Company.TABLE + "("
+ Company.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ Company.KEY_cname + " TEXT,"
+ Company.KEY_cstanding + " TEXT,"
+ Company.KEY_crepres + " TEXT,"
+ Company.KEY_ccontact + " TEXT,"
+ Company.KEY_cemail + " TEXT" + ");";
db.execSQL(CREATE_TABLE_COMPANY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXIST" + Project.TABLE);
db.execSQL("DROP TABLE IF EXIST" + User.TABLE);
db.execSQL("DROP TABLE IF EXIST" + Company.TABLE);
onCreate(db);
}
public static boolean validateUser(String loguser, String logpass){
return false;
}
}
这是我更新的查询版本..但没有任何反应..我的列表视图没有任何显示..
public class ClientModule extends ActionBarActivity {
private DBHelper dbHelper;
Button btnrefresh;
ListView lv ;
TextView project_Id;
String comnameproj;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_module);
dbHelper = new DBHelper(ClientModule.this);
lv = (ListView) findViewById(R.id.listView);
btnrefresh = (Button) findViewById(R.id.btncrefresh);
btnrefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor cursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + User.TABLE, null);
if(cursor.moveToFirst()) {
do {
comnameproj = cursor.getString(5);
} while (cursor.moveToNext());
}
Cursor qcursor = dbHelper.getReadableDatabase().rawQuery("SELECT * FROM " + Project.TABLE, null);
if (qcursor.moveToFirst()) {
do {
if (qcursor.getString(8).equals(comnameproj)) {
ProjectCrud pcrud = new ProjectCrud(ClientModule.this);
ArrayList<HashMap<String, String>> projectList = pcrud.getProjectList();
if (projectList.size() != 0) {
//entrylist = (ListView) findViewById(R.id.list);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
project_Id = (TextView) view.findViewById(R.id.project_Id);
String projectId = project_Id.getText().toString();
Intent objintent = new Intent(getApplicationContext(), ProjectDetail.class);
objintent.putExtra("project_Id", Integer.parseInt(projectId));
startActivity(objintent);
}
});
ListAdapter adapter = new SimpleAdapter(ClientModule.this, projectList, R.layout.refresh_project, new String[]{"id", "title"}, new int[]{R.id.project_Id, R.id.project_title});
lv.setAdapter(adapter);
} else {
Toast.makeText(ClientModule.this, "No Project!", Toast.LENGTH_LONG).show();
}
}
}while (cursor.moveToNext()) ;
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_client_module, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.exit_client) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
您需要修改您的 SQLite SELECT 查询。由于您想要 select 特定用户拥有的项目列表,您应该如下所示编写查询(我假设您在名为 userCompany
的 String
中指定用户的项目名称):
btnrefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String selectQuery = "SELECT * FROM " + Project.TABLE + " WHERE " + Project.KEY_companyproj " = " + userCompany;
Cursor qCursor = dbHelper.getReadableDatabase().rawQuery(selectQuery, null);
ArrayList<HashMap<String, String>> projectList = new ArrayList<HashMap<String, String>>();
/* loop through all rows and add to list */
if (qCursor.moveToFirst()) {
do {
HashMap<String, String> project = new HashMap<String, String>();
project.put("id", cursor.getString(String.valueOf(cursor.getColumnIndex(Project.KEY_ID))));
project.put("title", cursor.getString(cursor.getColumnIndex(Project.KEY_title)));
projectList.add(project);
} while (qCursor.moveToNext());
}
qCursor.close();
// populate the listview with projectlist here
}
};
如果有帮助请告诉我。