Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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 从AlertDialog检索项目到ListView中的活动_Android_Listview_Android Alertdialog - Fatal编程技术网

Android 从AlertDialog检索项目到ListView中的活动

Android 从AlertDialog检索项目到ListView中的活动,android,listview,android-alertdialog,Android,Listview,Android Alertdialog,我正在开发一个android应用程序,我的要求是,我需要将光标值显示在alertdialog中,让用户从列表中选择一个项目,所选值应返回给调用活动。在我的应用程序中,根据学生信息,光标保存他正在学习的课程的值。因此,用户应该能够选择其中一个课程,然后该值应该返回到名为alertdialog的活动。你能告诉我如何继续这项工作吗?我看过多个例子,但似乎没有一个是完全有效的。 这是我的示例代码 final AlertDialog.Builder builder = new AlertDialog

我正在开发一个android应用程序,我的要求是,我需要将光标值显示在alertdialog中,让用户从列表中选择一个项目,所选值应返回给调用活动。在我的应用程序中,根据学生信息,光标保存他正在学习的课程的值。因此,用户应该能够选择其中一个课程,然后该值应该返回到名为alertdialog的活动。你能告诉我如何继续这项工作吗?我看过多个例子,但似乎没有一个是完全有效的。 这是我的示例代码

   final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());  
   final Cursor courses=dbConnector.getCourses(student);
   builder.setTitle("Enter Course");
   builder.setCursor(courses, new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialogInterface, int itemSelected) {
       if (courses.moveToPosition(itemSelected)) {
           String text=courses.getString(0);
           Toast.makeText(getApplicationContext(),
                 "You selected: "+text,                                  
                   Toast.LENGTH_SHORT);
           builder.show();
      }
      courses.moveToFirst();
   }
 },"course");
builder.create();
createRow(sview, student, pass,text);

现在,我想将文本变量返回给调用活动,但这里它是onClick()方法的本地变量。我们如何做到这一点而不必扩展任何DialogFragment类。

我建议您在重写的onClick方法中调用该类的一个方法,并对其执行任何您喜欢的操作,因为该方法将位于类似此处的
活动中

@Override
   public void onClick(DialogInterface dialogInterface, int itemSelected) {
    myMethod(itemSelected);
}

private void myMethod(int selectedItem){
  //Do whatever with that selected item
}

注意:这是一个大java文件的部分代码,因此,我只给出了与AlertDialog对应的代码。创建自定义listview将光标添加到该文件中,然后
builder.setView(listview)
将起作用。然后将listener附加到listview以完成您的流程您能给我指一个这样的示例吗..嗯,我试过了,但我不确定如何在函数外使用文本变量。我想使用这个函数,它使用文本变量作为参数之一,同时使用其他参数,这些参数仅在活动中已知,不会传递给AlertDialog。在这种情况下,我们如何处理??createRow(sview、student、pass、text);将有一个
List
ArrayList
变量,当前保存您需要的数据。在类级别创建该变量或使其成为全局变量,并在
对话框中显示该列表。然后在选择一个项目后,调用
myMethod
,位置为
selectedItem
。您可以使用该索引检索列表的特定项,如
myList.get(selectedItem)