Android 警报对话框中的多个选择
你好 我创建了一个showDialog方法,它将显示一个警报对话框,并将列出我可以选择的多个数据。我的问题是,当我单击“确定”时,我要调用的下一个方法(myMethod())没有被调用。有人能帮我吗?这是我的密码: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
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()
没有像你期望的那样执行吗?是的。我添加了方法。它只在我尝试调试、设置断点并逐步执行时执行。但在正常运行时,它不会执行。在该方法中放入日志打印,以确定在正常运行时失败的内容。您还可以使用硬编码的字符串
,而不使用对话框
,来测试该方法。