从事件中获取变量/控件



我试图从对话框中获得一些值。我有一个名为Splash的活动,显示了一个窗体的对话框。它显示的形式很好,但我给了我一个错误,当我试图得到的值(nullpointer)。

我有以下代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    //datos objeto
    nombre = (TextView) findViewById(R.id.tv_nombre);
    padre = (TextView) findViewById(R.id.tv_nom_padre);
    madre = (TextView) findViewById(R.id.tv_nom_madre);
    rgSexo = (RadioGroup) findViewById(R.id.rg_sexo);
    fecha_nac = (DatePicker) findViewById(R.id.dp_fecha_nac);
    rb_m = (RadioButton) findViewById(R.id.rb_masc);
    rb_f = (RadioButton) findViewById(R.id.rb_fem);

    perfil = new PerfilCRUD(this);
    perfil.open();
    //first time
    if (perfil.primeraVez()){
        //muestro el popup
        Log.v(TAG, "prim vez");


        Dialog dialog = new Dialog(this); 
        dialog.setContentView(R.layout.dialog_perfil);
        dialog.setTitle("Datos del usuario");                
        dialog.show();
        Button botOk = (Button) dialog.findViewById(R.id.b_ok);

        botOk.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                Log.v(TAG, "boton ok");
                Log.v(TAG, nombre.getText().toString());
            }   
        });

当我试图获得nombre.getText(). tostring()值时,它给了我错误。它发生在所有变量/控件值。它强制关闭应用程序。

谢谢! !

这是因为nombre在您原来的layout中。在dialog中调用inflate,在layout中调用TextView,或者在

中创建类级别变量String name = "";
if (perfil.primeraVez()){
  name = nombre.getText().toString();
那么你可以在你的dialog
中使用name

最新更新