Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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_Facebook Android Sdk_Android Dialog_Android Sdk 2.3 - Fatal编程技术网

Android 警报对话框中的多个选择

Android 警报对话框中的多个选择,android,facebook-android-sdk,android-dialog,android-sdk-2.3,Android,Facebook Android Sdk,Android Dialog,Android Sdk 2.3,你好 我创建了一个showDialog方法,它将显示一个警报对话框,并将列出我可以选择的多个数据。我的问题是,当我单击“确定”时,我要调用的下一个方法(myMethod())没有被调用。有人能帮我吗?这是我的密码: private void showDialog(List<String> list) { final CharSequence[] dialogList= list.toArray(new CharSequence[list.size()]); fina

你好

我创建了一个showDialog方法,它将显示一个警报对话框,并将列出我可以选择的多个数据。我的问题是,当我单击“确定”时,我要调用的下一个方法(myMethod())没有被调用。有人能帮我吗?这是我的密码:

private void showDialog(List<String> list) {
    final CharSequence[] dialogList=  list.toArray(new CharSequence[list.size()]);
    final AlertDialog.Builder builderDialog = new AlertDialog.Builder(SharingActivity.this);
    builderDialog.setTitle("Select Item");
    int count = dialogList.length;
    boolean[] is_checked = new boolean[count];
    String result = "";

    builderDialog.setMultiChoiceItems(dialogList, is_checked,
            new DialogInterface.OnMultiChoiceClickListener() {
                public void onClick(DialogInterface dialog,
                                    int whichButton, boolean isChecked) {
                }
            });

    builderDialog.setPositiveButton("OK",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    ListView list = ((AlertDialog) dialog).getListView();
                    // make selected item in the comma seprated string
                    StringBuilder stringBuilder = new StringBuilder();
                    for (int i = 0; i < list.getCount(); i++) {
                        boolean checked = list.isItemChecked(i);

                        if (checked) {
                            if (stringBuilder.length() > 0) stringBuilder.append(",");
                            stringBuilder.append(list.getItemAtPosition(i));

                        }
                    }

                    myMethod(stringBuilder.toString()); //this is the method

                }
            });

    builderDialog.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    ((TextView) findViewById(R.id.text)).setText("Click here to open Dialog");
                }
            });
    AlertDialog alert = builderDialog.create();
    alert.show();
}
private void showDialog(列表){
final CharSequence[]dialogList=list.toArray(新的CharSequence[list.size()]);
final AlertDialog.Builder builderDialog=新建AlertDialog.Builder(SharingActivity.this);
builderDialog.setTitle(“选择项”);
int count=dialogList.length;
布尔值[]已选中=新布尔值[计数];
字符串结果=”;
builderDialog.setMultiChoiceItems(对话框列表,已选中,
新的DialogInterface.OnMultiChoiceClickListener(){
公共void onClick(对话框接口对话框,
int whichButton,布尔值已选中){
}
});
builderDialog.setPositiveButton(“确定”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
ListView列表=((AlertDialog)对话框).getListView();
//在逗号分隔的字符串中设置选定项
StringBuilder StringBuilder=新的StringBuilder();
对于(int i=0;i0)stringBuilder.append(“,”);
追加(list.getItemAtPosition(i));
}
}
myMethod(stringBuilder.toString());//这是方法
}
});
builderDialog.setNegativeButton(“取消”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
((TextView)findviewbyd(R.id.text)).setText(“单击此处打开对话框”);
}
});
AlertDialog alert=builderDialog.create();
alert.show();
}
以下是我的方法:

private void myMethod(String stringFriend){
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("image");

Bitmap image = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
//Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
SharePhoto photo = new SharePhoto.Builder()
        .setBitmap(image)
        .setCaption("")
        .build();
List<String> peopleIds =  new ArrayList<String>();
peopleIds.add(stringFriend);

SharePhotoContent content = new SharePhotoContent.Builder()
        .addPhoto(photo)
        .setPeopleIds(peopleIds)
        .build();

ShareApi.share(content, null);
private void myMethod(字符串stringFriend){
Bundle extras=getIntent().getExtras();
byte[]byteArray=extras.getByteArray(“图像”);
位图图像=BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);
//位图image=BitmapFactory.decodeResource(getResources(),R.drawable.ic_启动器);
SharePhoto photo=新建SharePhoto.Builder()
.setBitmap(图像)
.setCaption(“”)
.build();
List peopleId=new ArrayList();
peopleid.add(stringFriend);
SharePhotoContent内容=新的SharePhotoContent.Builder()
.addPhoto(照片)
.SetPeopleId(PeopleId)
.build();
ShareApi.share(内容,空);

}

如何确定未调用
myMethod()
?你在这里打印日志了吗?突破点?您是否正在逐步完成代码?该方法中的进程根本没有执行。但奇怪的是,当我使用调试模式并使用单步执行时,myMethod正在执行。你确定
myMethod()
没有像你期望的那样执行吗?是的。我添加了方法。它只在我尝试调试、设置断点并逐步执行时执行。但在正常运行时,它不会执行。在该方法中放入日志打印,以确定在正常运行时失败的内容。您还可以使用硬编码的
字符串
,而不使用
对话框
,来测试该方法。