【问题标题】:android passing data to dialogBoxandroid将数据传递给对话框
【发布时间】:2017-05-07 04:49:50
【问题描述】:

您好,我是android编程的初学者,我在将数据从MainActivity发送到我的对话框时遇到问题。我必须在这里问,因为我尝试了很长时间没有成功。

在 MainActivity.class 中,我使用 onOptionsItemSelected 方法从 DialogBoxSettings.class 创建对话框。

 @Override
public boolean onOptionsItemSelected(MenuItem item) {

    String title = (String) item.getTitle(); // I set my title
    Bundle savedInstanceState = new Bundle();
    savedInstanceState.putString("dialogBoxSettingsTitle", title);

    DialogBoxSettings newFragment = new DialogBoxSettings();
    newFragment.setArguments(savedInstanceState);

    Toast.makeText(getApplicationContext(), title, Toast.LENGTH_LONG).show();

    newFragment.show(getFragmentManager(), "dialogBoxSettings");

    return super.onOptionsItemSelected(item);
}

在方法 onCreateDialog 的 DialogBoxSettings 中,我创建了我的对话框

public class DialogBoxSettings extends DialogFragment {

private static final String TAG = DialogBoxSettings.class.getSimpleName();

EditText mEditTextDialogBoxService;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();
    View view = inflater.inflate(R.layout.dialog_box_settings, null);
    builder.setView(view);
    //builder.setMessage(title);

    mEditTextDialogBoxService = (EditText) view.findViewById(R.id.editTextDialogBoxService);

    builder.setPositiveButton(getResources().getText(R.string.dialogBoxSettingsPositiveButton), new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            Log.d(TAG, "POSITIVE button");
        }
    });
    builder.setNegativeButton(getResources().getText(R.string.dialogBoxSettingsNegativeButton), new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            Log.d(TAG, "NEGATIVE button");
        }
    });
    // Create the AlertDialog object and return it
    return builder.create();
}

}

除了我不知道如何将标题传递给 onCreateDialog 方法之外,所有这些都可以正常工作。我现在需要为此使用 Bundle,但我真的尝试了一切,但现在失败了,所以如果有人帮助我,我将非常感激。到目前为止,我已经尝试做这样的事情,但我没有成功Pass item[] to DialogFragment

谢谢!!!!

【问题讨论】:

    标签: android string dialog bundle send


    【解决方案1】:

    在您的对话框片段中:

    public class DialogBoxSettings extends DialogFragment {
    
    private static final String TAG = DialogBoxSettings.class.getSimpleName();
    
    EditText mEditTextDialogBoxService;
    
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
    
    ***final String title = getArguments().getString("dialogBoxSettingsTitle");***
    
    
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.dialog_box_settings, null);
        builder.setView(view);
    ***builder.setTitle(title);***
        //builder.setMessage(title);
    
        mEditTextDialogBoxService = (EditText) view.findViewById(R.id.editTextDialogBoxService);
    
        builder.setPositiveButton(getResources().getText(R.string.dialogBoxSettingsPositiveButton), new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                Log.d(TAG, "POSITIVE button");
            }
        });
        builder.setNegativeButton(getResources().getText(R.string.dialogBoxSettingsNegativeButton), new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                Log.d(TAG, "NEGATIVE button");
            }
        });
        // Create the AlertDialog object and return it
        return builder.create();
    }
    

    【讨论】:

    • 最欢迎 :)
    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多