How to retrieve editText1 in DialogFragment using view from xml-resourcefile

你。 提交于 2019-12-23 19:25:59

问题


How to retrieve editText1 in this DialogFragment? It exists in vraag_banen.xml but getView() is null.

The dialog shows fine, also no compilation errors, however I cannot figure out how to write the eventhandler for the PositiveButton, using a custom view from an xml resourcefile.

package mypackage;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;

public class VraagBanenDialogFragment extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();

        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        builder.setView(inflater.inflate(R.layout.vraag_banen, null))
        // Add action buttons
               .setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {

                       Activity pa = getActivity().getParent(); //-> TabsMenu
                       Context bc = getActivity().getBaseContext(); //-> ContextImpl
                       View vi = getView(); //-> null
                       Class<? extends OnClickListener> cl = this.getClass(); //-> Class (nl.computerhuys.tabnavui.VraagBanenDialogFragment$1)
                       String acn = getActivity().getClass().getName(); //-> nl.computerhuys.tabnavui.Spel
                       String cn = getClass().getName(); //-> nl.computerhuys.tabnavui.VraagBanenDialogFragment$1
                       OnClickListener t = this; //-> VraagBanenDialogFragment$1

                       EditText editText1 = (EditText) getView().findViewById(R.id.editText1); 
                       EditText editText2 = (EditText) getView().findViewById(R.id.editText2);
                       int baan1 = Integer.valueOf(editText1.getText().toString());
                       int baan2 = Integer.valueOf(editText2.getText().toString());
                       InitSpel.addBaanNummer(baan1);
                       InitSpel.addBaanNummer(baan2);

                   }
               })
               .setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       VraagBanenDialogFragment.this.getDialog().cancel();
                   }
               });      
        return builder.create();
    }

回答1:


found a way: name the anonymous view:

View v = inflater.inflate(R.layout.vraag_banen, null) 

and then use v to refer to the view, instead of getView():

EditText editText1 = (EditText) v.findViewById(R.id.editText1).

Etc. That works.



来源:https://stackoverflow.com/questions/14520899/how-to-retrieve-edittext1-in-dialogfragment-using-view-from-xml-resourcefile

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!