Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 如何将我的数据从数据库检索到复选框列表视图类型?_Android - Fatal编程技术网

Android 如何将我的数据从数据库检索到复选框列表视图类型?

Android 如何将我的数据从数据库检索到复选框列表视图类型?,android,Android,我正在尝试将数据从数据库检索到复选框列表视图中,但无法执行此操作。下面是我已经用来从数据库检索数据到列表视图的代码。但我想要的是检索到checkbox列表视图类型,以便我可以检查它。我该怎么做 公共类StudentDetailActivity扩展了活动实现OnClickListener、OnItemClickListener{ private ListView uGraduateNamesListView; private Button addNewUndergraduateButton;

我正在尝试将数据从数据库检索到复选框列表视图中,但无法执行此操作。下面是我已经用来从数据库检索数据到列表视图的代码。但我想要的是检索到checkbox列表视图类型,以便我可以检查它。我该怎么做

公共类StudentDetailActivity扩展了活动实现OnClickListener、OnItemClickListener{

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