0

我正在尝试从对话框中获取一些值。我有一个名为 Splash 的活动,它显示一个带有表单的对话框。它显示了 wel 形式,但是当我尝试获取该值(空指针)时,我给了我一个错误。

我有以下代码:

@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() 值时,它给了我错误。所有变量/控制值都会发生这种情况。它强制关闭应用程序。

谢谢!!

4

1 回答 1

0

因为nombre是在你原来的layout. 要么调用你TextView在其中的a 要么创建一个类级别变量然后在layoutinflatedialogString name = "";

if (perfil.primeraVez()){
  name = nombre.getText().toString();

然后你可以name在你的dialog

于 2013-04-08T17:03:05.810 回答