複数選択チェックボックスダイアログをパブリックプロパティとパブリッククラスから取得するように変換しています(したがって、どこからでもプルできます)。
ただし、通常、クラスから何かを行うときは、whatever.ID を利用できます。whatever.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();
}
私が本当にしなければならないことは、次のようなものだと思います.setMultiChoiceItems(mHelperNames.toArray.Name(new CharSequence[mHelperNames.size()])
しかし、明らかにそれはうまくいきません。名前の値を setMultiChoiceItems 配列に割り当てるにはどうすればよいですか?
トム