1

そのため、フラグメントに表示されるダイアログがあります。ダイアログでテキストビューを変更する必要があります。そのため、editText を使用してダイアログを作成しましたが、文字シーケンスをダイアログからフラグメントに渡す方法がわかりません。

rename_dialog_editダイアログからの EditText です

GroupNameフラグメントの TextView です

肯定的なクリック:

GroupName.setText((CharSequence) rename_dialog_edit);

肯定的なクリックの後、私のテキストビューは空になります。どうすれば正しく設定できますか?

アップデート

    protected static TextView GroupName;
protected static EditText rename_dialog_edit;

onCreateView には次のものがあります。

TextView GroupName = (TextView) view.findViewById(R.id.group_details_name); 
EditText rename_dialog_edit = (EditText) view.findViewById(R.id.groupdetails_rename);

ここに私のonCreateDialogがあります:

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getActivity().getLayoutInflater();
        //int title = getArguments().getInt("title");

        return builder.setView(inflater.inflate(R.layout.group_details_rename_dialog, null))
                //.setIcon(R.drawable.logo)
                //.setTitle(R.string.groupDetails_rename)
                .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int id) {
               doPositiveClick();
           }
                    })
                        .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                               public void onClick(DialogInterface dialog, int id) {
                                   doNegativeClick();
                               }
                        })
                        .create();
    }

ここに私の肯定的なクリックがあります:

    public static void doPositiveClick() {

    GroupName.setText(rename_dialog_edit.getText().toString());

    //Log.i("FragmentAlertDialog", "Positive click!");
}
4

1 に答える 1

3

EditText次のようなものからテキストを取得します。

String str= ((EditText)findViewById(R.id.rename_dialog_edit)).getText().toString();

次のように textView に設定します。

TextView text = (TextView) findViewById(R.id.this_is_the_id_of_your_textview);
text.setText(str);

このようなことを試しましたか?

更新

ボタンリスナー内で次のようにします。

GroupName.setText(rename_dialog_edit.getText().toString())

また、Java の camelCase 変数名と一致するようにしてください。それは良い習慣かもしれません。

于 2013-08-15T19:58:12.430 に答える