Android-如何将字符串从Alertdialog发送到片段

Android-如何将字符串从Alertdialog发送到片段,android,android-fragments,android-intent,android-alertdialog,Android,Android Fragments,Android Intent,Android Alertdialog,我正在使用带有1EditText的AlertDialog。我想知道如何将字符串从AlertDialog发送到Fragment 请检查我下面的代码 @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_datasource){ enterdatasourceId(); ret

我正在使用带有1
EditText
AlertDialog
。我想知道如何将字符串从
AlertDialog
发送到
Fragment

请检查我下面的代码

 @Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.action_datasource){
        enterdatasourceId();
        return true;
    }

    return super.onOptionsItemSelected(item);
}
enterdatasourceId的代码为:

 public void enterdatasourceId() {
    LayoutInflater inflater = LayoutInflater.from(this);
    final View dialogView = inflater.inflate(R.layout.cutom_dialog,null);
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);

    dialogBuilder.setTitle("Enter you unique ID");
    dialogBuilder.setCancelable(false);
    dialogBuilder.setView(dialogView);

    final EditText datasource1 = (EditText) dialogView.findViewById(R.id.datasource_id);

    dialogBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            String dsource = datasource1.getText().toString().trim();
            Intent intent = new Intent();
            intent.putExtra("Datasource",dsource);
        }
    });
    dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            dialogInterface.cancel();
        }
    });
    AlertDialog customDialog = dialogBuilder.create();
    customDialog.show();
}
下面是我希望接收该字符串的片段的代码

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    Datasource = getActivity().getIntent().getStringExtra("Datasource");
}

Fragment
中,我想接收我在
AlertDialog
中输入的字符串,并从这里将该字符串作为另一个类中的参数发送。我想明确指出,我使用的
AlertDialog
活动是dashboad2.java,我想接收该字符串的片段在同一
活动(dashboard2.java)

中,您可以创建一个DialogFragment。 在dialogFragment中创建一个接口。 在父片段中实现接口

下面是您如何继续的示例

public class YourDialogFragment extends DialogFragment {

    OnSubmitListener mListener;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
         Dialog dialog = new Dialog(getActivity());
         dialog.setContentView(R.layout.your_custom_layout);
         dialog.show();

         Button proceed = (Button) dialog.findViewById(R.id.proceedBtn);
         Button cancel = (Button) dialog.findViewById(R.id.cancelBtn);
         EditText datasource1 = (EditText)dialog.findViewById(R.id.datasource_id);

    proceed.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          mListener.GetDataSource(datasource1.getText().toString().trim());
         } 
         dismiss();
        }
    });

    cancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dismiss();
        }
    });
         return dialog;
    }



public interface OnSubmitListener {
                void GetDataSource(String dataSrc);
            }
}
在片段中实现您的DialogFragment.OnSubmitListener。它将使您重写GetDataSource(String)方法,您将从中获取字符串

if (id == R.id.action_datasource){
     //        enterdatasourceId();
     YourDialogFragment fragment = new YourDialogFragment ();
     fragment.mListener = getActivity();
     fragment.show((Activity) context).getFragmentManager(), "dialogFragment"); 
     return true;
}

您可以创建一个DialogFragment。 在dialogFragment中创建一个接口。 在父片段中实现接口

下面是您如何继续的示例

public class YourDialogFragment extends DialogFragment {

    OnSubmitListener mListener;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
         Dialog dialog = new Dialog(getActivity());
         dialog.setContentView(R.layout.your_custom_layout);
         dialog.show();

         Button proceed = (Button) dialog.findViewById(R.id.proceedBtn);
         Button cancel = (Button) dialog.findViewById(R.id.cancelBtn);
         EditText datasource1 = (EditText)dialog.findViewById(R.id.datasource_id);

    proceed.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          mListener.GetDataSource(datasource1.getText().toString().trim());
         } 
         dismiss();
        }
    });

    cancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dismiss();
        }
    });
         return dialog;
    }



public interface OnSubmitListener {
                void GetDataSource(String dataSrc);
            }
}
在片段中实现您的DialogFragment.OnSubmitListener。它将使您重写GetDataSource(String)方法,您将从中获取字符串

if (id == R.id.action_datasource){
     //        enterdatasourceId();
     YourDialogFragment fragment = new YourDialogFragment ();
     fragment.mListener = getActivity();
     fragment.show((Activity) context).getFragmentManager(), "dialogFragment"); 
     return true;
}

意图=新意图();intent.putExtra(“数据源”,dsource);此意图用于转到其他活动?不!当应用程序启动一个带有edittext的alertdialog时,弹出对话框,按下Ok按钮,对话框消失,fragment get focusedYou可以这样使用:Bundle Bundle=new Bundle();fragment.setArguments(bundle);在片段中,我应该做些什么来获取数据?请分享一些codeIntent intent=new intent();intent.putExtra(“数据源”,dsource);此意图用于转到其他活动?不!当应用程序启动一个带有edittext的alertdialog时,弹出对话框,按下Ok按钮,对话框消失,fragment get focusedYou可以这样使用:Bundle Bundle=new Bundle();fragment.setArguments(bundle);在fragment中,我应该做什么来获取数据?请分享一些代码,但我如何从对话框fragmnet中的edittext中获取字符串,并将其传递给其他fragmnet您正在使用的接口。mListener.GetDataSource(datasource1.getText().toString().trim());当您按下dialogfragment中的“继续”按钮时,您将在父片段中的edittext on Overrided方法中获得字符串,在其他片段中我将如何获得传递的字符串请共享一些代码我将如何在其他片段中获得传递的字符串实现YourDialogFragment.OnSubmitListener,它将强制您重写方法GetDataSource(String dataSrc)。。这个字符串dataSrc将是dialogFragment中edittext的值。但是我如何从DialogFragmnet中的edittext获取字符串并将其传递给其他fragmnet您正在使用的接口。mListener.GetDataSource(datasource1.getText().toString().trim());当您按下dialogfragment中的“继续”按钮时,您将在父片段中的edittext on Overrided方法中获得字符串,在其他片段中我将如何获得传递的字符串请共享一些代码我将如何在其他片段中获得传递的字符串实现YourDialogFragment.OnSubmitListener,它将强制您重写方法GetDataSource(String dataSrc)。。此字符串dataSrc将是dialogFragment中edittext的值。