Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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
Java Android:多选对话框为数组中的元素指定名称_Java_Android_Arrays - Fatal编程技术网

Java Android:多选对话框为数组中的元素指定名称

Java Android:多选对话框为数组中的元素指定名称,java,android,arrays,Java,Android,Arrays,我正在将我的“多重选择复选框”对话框转换为来自公共属性和公共类(这样我就可以从任何地方提取它) 然而,通常当我从一个类中执行某些操作时,我会使用which.ID和which.Name,我想这只是一个普通的多维数组。但是,在这种情况下,我无法理解语法 这是我的自定义类: package com.directenquiries.assessment.tool.Globals; public class clsNameID { public String Name; public S

我正在将我的“多重选择复选框”对话框转换为来自公共属性和公共类(这样我就可以从任何地方提取它)

然而,通常当我从一个类中执行某些操作时,我会使用which.ID和which.Name,我想这只是一个普通的多维数组。但是,在这种情况下,我无法理解语法

这是我的自定义类:

package com.directenquiries.assessment.tool.Globals;

public class clsNameID {
    public String Name;
    public String ID;

}
以下是创建阵列的原因:

public static List<clsNameID> assetHelperTypes(){
    Log.e("Asset Helper Types:", "Started");
    clsNameID AssetDetails = null;
    List<clsNameID> mHelperNames = new ArrayList<clsNameID>();
    File dbfile = new File(Global.currentDBfull); 

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
    Cursor f = db.rawQuery("select * from assetobservationtypes", null);  
    Log.e("Asset Helper Types:", "Cursor run");

    if(f.getCount() > 0) {
        f.moveToFirst();
           while(!f.isAfterLast()) {
               AssetDetails     = new clsNameID();
               AssetDetails.ID = f.getString(f.getColumnIndex("AssetObsID"));
               AssetDetails.Name = f.getString(f.getColumnIndex("Observation"));
               mHelperNames.add(AssetDetails);
               Log.e("Found Item:", AssetDetails.Name);
                f.moveToNext();
           }
    }


    f.close();

    return mHelperNames;
}
public void addCondition(View view){

          List<clsNameID> mHelperNames = DBFunctions.assetHelperTypes();

            final List<Integer> mSelectedItems = new ArrayList<Integer>();

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("My Title")
                    .setMultiChoiceItems(mHelperNames.toArray(new CharSequence[mHelperNames.size()]), null,
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which, boolean isChecked) {
                                    if (isChecked) {

                                        mSelectedItems.add(which);
                                    } else if (mSelectedItems.contains(which)) {

                                        mSelectedItems.remove(Integer
                                                .valueOf(which));
                                    }   
                                }
                            })



   .setPositiveButton("Save", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {
                        //Create onlcick method
                   }
               })
               .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {
                        //Create onlcick method
                   }
               });
        builder.show();

}
公共静态列表资产属性(){
Log.e(“资产助手类型:”,“已启动”);
clsNameID AssetDetails=null;
List mHelperNames=new ArrayList();
File dbfile=新文件(Global.currentDBfull);
SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase(dbfile,null);
游标f=db.rawQuery(“从AssetTobservationTypes中选择*”,null);
Log.e(“资产助手类型:”,“游标运行”);
如果(f.getCount()>0){
f、 moveToFirst();
而(!f.isAfterLast()){
AssetDetails=newclsnameid();
AssetDetails.ID=f.getString(f.getColumnIndex(“AssetObsID”);
AssetDetails.Name=f.getString(f.getColumnIndex(“观察”);
mHelperNames.add(资产详情);
Log.e(“找到的项:”,AssetDetails.Name);
f、 moveToNext();
}
}
f、 close();
返回mHelperName;
}
这里是我尝试使用数组的地方:

public static List<clsNameID> assetHelperTypes(){
    Log.e("Asset Helper Types:", "Started");
    clsNameID AssetDetails = null;
    List<clsNameID> mHelperNames = new ArrayList<clsNameID>();
    File dbfile = new File(Global.currentDBfull); 

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
    Cursor f = db.rawQuery("select * from assetobservationtypes", null);  
    Log.e("Asset Helper Types:", "Cursor run");

    if(f.getCount() > 0) {
        f.moveToFirst();
           while(!f.isAfterLast()) {
               AssetDetails     = new clsNameID();
               AssetDetails.ID = f.getString(f.getColumnIndex("AssetObsID"));
               AssetDetails.Name = f.getString(f.getColumnIndex("Observation"));
               mHelperNames.add(AssetDetails);
               Log.e("Found Item:", AssetDetails.Name);
                f.moveToNext();
           }
    }


    f.close();

    return mHelperNames;
}
public void addCondition(View view){

          List<clsNameID> mHelperNames = DBFunctions.assetHelperTypes();

            final List<Integer> mSelectedItems = new ArrayList<Integer>();

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("My Title")
                    .setMultiChoiceItems(mHelperNames.toArray(new CharSequence[mHelperNames.size()]), null,
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which, boolean isChecked) {
                                    if (isChecked) {

                                        mSelectedItems.add(which);
                                    } else if (mSelectedItems.contains(which)) {

                                        mSelectedItems.remove(Integer
                                                .valueOf(which));
                                    }   
                                }
                            })



   .setPositiveButton("Save", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {
                        //Create onlcick method
                   }
               })
               .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {
                        //Create onlcick method
                   }
               });
        builder.show();

}
public void addCondition(视图){
List mHelperNames=DBFunctions.AssetPerTypes();
最终列表mSelectedItems=newarraylist();
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setTitle(“我的标题”)
.setMultiChoiceItems(mHelperNames.toArray(新字符序列[mHelperNames.size()]),null,
新的DialogInterface.OnMultiChoiceClickListener(){
@凌驾
公共void onClick(对话框接口对话框,
int,其中布尔值已检查){
如果(已检查){
mSelectedItems.add(哪个);
}else if(mSelectedItems.contains(which)){
mSelectedItems.remove(整数
.价值(其中);
}   
}
})
.setPositiveButton(“保存”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface对话框,int-id){
//创建onlcick方法
}
})
.setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface对话框,int-id){
//创建onlcick方法
}
});
builder.show();
}
我想我真正需要做的是
.setMultiChoiceItems(mHelperNames.toArray.Name)(新字符序列[mHelperNames.size()])

但很明显,这是行不通的。如何将名称值分配给setMultiChoiceItems数组

汤姆