2015-02-06 141 views
0

我想从我的数据库显示客户端公司下的所有项目将显示特定的数据..如何显示查询结果中的数据..如果多个项目在公司的下面找到的是listview可以列出它的全部吗?提前如何显示特定的数据从数据库到列表视图sqlitedatabase

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




       } 
      } 

     } 
    }); 

这个我表

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; 

} 


} 

这是我更新的查询版即时通讯新到Android ..thanks ..但没有发生..没有显示我的ListView ..

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); 
} 
} 
+1

您正在主线程上运行数据库查询。要非常小心,这可能会导致用户界面结束! – Quanturium 2015-02-06 00:57:18

+0

哦..谢谢..我该怎么办? – Jeraline 2015-02-06 01:02:47

+0

@Jeraline您当前的查询是否返回任何结果? – iRuth 2015-02-06 01:03:15

回答

1

你需要修改你的SQLite SELECT查询。既然你要选择的特定用户所拥有的项目列表,你应该写你的查询如下所示(我假设你在String称为userCompany指定用户的项目名称):

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

让我知道如果这有帮助。

+0

它的工作原理!真的非常感谢你@iruth .. – Jeraline 2015-02-06 06:53:54

+0

我很高兴它的工作。 – iRuth 2015-02-06 13:32:44

相关问题