Android 如何将我的数据从数据库检索到复选框列表视图类型?
我正在尝试将数据从数据库检索到复选框列表视图中,但无法执行此操作。下面是我已经用来从数据库检索数据到列表视图的代码。但我想要的是检索到checkbox列表视图类型,以便我可以检查它。我该怎么做 公共类StudentDetailActivity扩展了活动实现OnClickListener、OnItemClickListener{Android 如何将我的数据从数据库检索到复选框列表视图类型?,android,Android,我正在尝试将数据从数据库检索到复选框列表视图中,但无法执行此操作。下面是我已经用来从数据库检索数据到列表视图的代码。但我想要的是检索到checkbox列表视图类型,以便我可以检查它。我该怎么做 公共类StudentDetailActivity扩展了活动实现OnClickListener、OnItemClickListener{ private ListView uGraduateNamesListView; private Button addNewUndergraduateButton;
private ListView uGraduateNamesListView;
private Button addNewUndergraduateButton;
private ListAdapter uGraduateListAdapter;
private ArrayList<UndergraduateDetailsPojo> pojoArrayList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student_detail);
uGraduateNamesListView = (ListView) findViewById(R.id.uGraduateListView);
uGraduateNamesListView.setOnItemClickListener(this);
addNewUndergraduateButton = (Button) findViewById(R.id.namesListViewAddButton);
addNewUndergraduateButton.setOnClickListener(this);
pojoArrayList = new ArrayList<UndergraduateDetailsPojo>();
uGraduateListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
uGraduateNamesListView.setAdapter(uGraduateListAdapter);
}
@Override
public void onClick(View v) {
Intent addNewUndergraduateIntent = new Intent(this, AddNewUndergraduateActivity.class);
startActivity(addNewUndergraduateIntent);
}
public List<String> populateList(){
List<String> uGraduateNamesList = new ArrayList<String>();
AndroidOpenDbHelper openHelperClass = new AndroidOpenDbHelper(this);
SQLiteDatabase sqliteDatabase = openHelperClass.getReadableDatabase();
Cursor cursor = sqliteDatabase.query(AndroidOpenDbHelper.TABLE_NAME_GPA, null, null, null, null, null, null);
startManagingCursor(cursor);
while (cursor.moveToNext()) {
String ugName = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.COLUMN_NAME_UNDERGRADUATE_NAME));
String ugUniId = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.COLUMN_NAME_UNDERGRADUATE_UNI_ID));
double ugGpa = cursor.getDouble(cursor.getColumnIndex(AndroidOpenDbHelper.COLLUMN_NAME_UNDERGRADUATE_GPA));
UndergraduateDetailsPojo ugPojoClass = new UndergraduateDetailsPojo();
ugPojoClass.setuGraduateName(ugName);
ugPojoClass.setuGraduateUniId(ugUniId);
ugPojoClass.setuGraduateGpa(ugGpa);
pojoArrayList.add(ugPojoClass);
uGraduateNamesList.add(ugName);
}
sqliteDatabase.close();
return uGraduateNamesList;
}
@Override
protected void onResume() {
super.onResume();
pojoArrayList = new ArrayList<UndergraduateDetailsPojo>();
uGraduateListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
uGraduateNamesListView.setAdapter(uGraduateListAdapter);
}
@Override
protected void onStart() {
super.onStart();
pojoArrayList = new ArrayList<UndergraduateDetailsPojo>();
uGraduateListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
uGraduateNamesListView.setAdapter(uGraduateListAdapter);
}
public void onClick1 (View view)
{
Intent newIntent;
newIntent=new Intent(this,HomePageActivity.class);
startActivity(newIntent);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Toast.makeText(getApplicationContext(), "Clicked on :" + arg2, Toast.LENGTH_SHORT).show();
Intent updateDeleteUgraduateIntent = new Intent(this, UpdateDeleteUndergraduateActivity.class);
UndergraduateDetailsPojo clickedObject = pojoArrayList.get(arg2);
Bundle dataBundle = new Bundle();
dataBundle.putString("clickedUgraduateName", clickedObject.getuGraduateName());
dataBundle.putString("clickedUgraduateUniId", clickedObject.getuGraduateUniId());
dataBundle.putDouble("clickedUgraduateGpa", clickedObject.getuGraduateGpa());
updateDeleteUgraduateIntent.putExtras(dataBundle);
startActivity(updateDeleteUgraduateIntent);
}
private ListView-ugradiatenameslistview;
私有按钮AddNewUndergradeButton;
私有ListAdapter ugradiateListAdapter;
私人ArrayList pojoArrayList;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u student\u detail);
uGraduateNamesListView=(ListView)findViewById(R.id.uGraduateListView);
uGraduateNamesListView.setOnItemClickListener(此);
AddNewUndergradeButton=(按钮)findViewById(R.id.namesListViewAddButton);
AddNewUndergradeButton.setOnClickListener(此);
pojoArrayList=新的ArrayList();
uGraduateListAdapter=new ArrayAdapter(这是android.R.layout.simple_list_item_1,populateList());
setAdapter(uGraduateListAdapter);
}
@凌驾
公共void onClick(视图v){
Intent addNewUndergradeIntent=新Intent(这是addNewUndergradeActivity.class);
StartTactivity(AddNewUndergradeIntent);
}
公共列表populateList(){
List UGRADUDEATENAMESLIST=新建ArrayList();
AndroidPendbHelper openHelperClass=新的AndroidPendbHelper(此);
SQLiteDatabase SQLiteDatabase=openHelperClass.getReadableDatabase();
Cursor Cursor=sqliteDatabase.query(AndroidOpenDbHelper.TABLE_NAME_GPA,null,null,null,null,null);
开始管理游标(游标);
while(cursor.moveToNext()){
字符串ugName=cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.COLUMN_NAME_NAME));
String ugUniId=cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.COLUMN_NAME_uniu ID));
double ugGpa=cursor.getDouble(cursor.getColumnIndex(AndroidOpenDbHelper.COLLUMN_NAME_audiumb_GPA));
UndergradeDetailsPojo ugPojoClass=新的UndergradeDetailsPojo();
ugPojoClass.SETUGRADUDEATENAME(ugName);
ugPojoClass.setugradudeunid(ugUniId);
ugPojoClass.setuGraduateGpa(ugGpa);
添加(ugPojoClass);
UGR名称列表。添加(ugName);
}
sqliteDatabase.close();
返回UGR名称列表;
}
@凌驾
受保护的void onResume(){
super.onResume();
pojoArrayList=新的ArrayList();
uGraduateListAdapter=new ArrayAdapter(这是android.R.layout.simple_list_item_1,populateList());
setAdapter(uGraduateListAdapter);
}
@凌驾
受保护的void onStart(){
super.onStart();
pojoArrayList=新的ArrayList();
uGraduateListAdapter=new ArrayAdapter(这是android.R.layout.simple_list_item_1,populateList());
setAdapter(uGraduateListAdapter);
}
公共void onClick1(视图)
{
意图新意图;
newIntent=newIntent(这是HomePageActivity.class);
星触觉(新意图);
}
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
Toast.makeText(getApplicationContext(),“单击:”+arg2,Toast.LENGTH\u SHORT.show();
Intent UPDATEDELETEUGRADEATEINT=新Intent(此为UPDATEDELETEUGRADEATEACTIVITY.class);
本科生详细信息JO clickedObject=pojoArrayList.get(arg2);
Bundle-dataBundle=新Bundle();
putString(“ClickedGraduateName”,clickedObject.getuGraduateName());
putString(“ClickedGraduateUniId”,clickedObject.getuGraduateUniId());
putDouble(“ClickedGradateGPA”,clickedObject.getUgradateGPA());
UPDATEDELETEUGRADEATEINTENT.PUTETRAS(数据绑定);
startActivity(UpdateDeleteGraduateIntent);
}
}您可以使用Android中提供的ListActivity。 您只需将数据管理为此ListActivity所需的格式 您可以在按钮上放置操作,而不是菜单选项
package your_package_name;
import android.app.ListActivity;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class your_activity_name extends ListActivity {
private static final int checkedItem= 0;
private String[] databaseContent;
String checkedItems = new String(); // comma separated
String uncheckedItems = new String(); // comma separated
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
databaseContent = your_data_from_database // this array should contain your data from database.
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, databaseContent));
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, checkedItem, 0, R.string."String you want to show");
return result;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item)
{
switch(item.getItemId())
{
case checked:
{
int reqlength = getListAdapter().getCount();
for (int i = 0; i < reqlength ; i++)
{
if (getListView().isItemChecked(i)) {
checkedItems = checkedItems.concat(databaseContent[i]).concat(",");
}
else {
uncheckedItems = uncheckedItems.concat(databaseContent[i]).concat(",");
}
}
Thread thread = new Thread(){
@Override
public void run() {
if ( checkedItems.length() > 0 ||
uncheckedItems.length() > 0
)
{
//Here is your desired output in checkedItems & uncheckedItems
}
}
};
thread.start();
Toast.makeText(your_activity_name.this, R.string.your_string, Toast.LENGTH_SHORT).show();
finish();
return true;
}
}
return super.onMenuItemSelected(featureId, item);
}
@Override
protected void onPause()
{
super.onPause();
}
@Override
protected void onResume()
{
super.onResume();
}
}
package\u package\u name;
导入android.app.ListActivity;
导入android.app.NotificationManager;
导入android.content.ComponentName;
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
公共类您的\u活动\u名称扩展了ListActivity{
私有静态最终int checkedItem=0;
私有字符串[]数据库内容;
String checkedItems=new String();//逗号分隔
String uncheckedItems=新字符串();//逗号分隔
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
databaseContent=来自数据库的数据//此数组应包含来自数据库的数据。
setListAdapter(新阵列适配器)(此,
android.R.layout.simple_list_item_多项选择,数据库内容);
getListView().setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
}
@凌驾
公共布尔onCreateOptions菜单(菜单菜单){
布尔结果=super.onCreateOptions菜单(菜单);
添加(0,checkedItem,0,R.string.“要显示的字符串”);
返回结果;
}
@凌驾
公共布尔值onMenuItemSelected(int-featureId,MenuItem项)
{
开关(item.getItemId())
{
已检查的案例:
{
int reqlength=getListAdapter().getCount();
对于(int i=0;i