【问题标题】:Get value of Parent activity's EditText in custom dialog在自定义对话框中获取父活动的 EditText 的值
【发布时间】:2014-04-02 07:51:23
【问题描述】:

我的应用显示来自我的activity onCreateDialog。所以我创建了一个CustomDialog,它工作正常。

我想在CustomDialog 中获得EditTextParent Activity 的值,但它给了我一个NULLPointerExecption

这是我的代码:

对话框:

public class VerifyDialog extends Dialog implements
android.view.View.OnClickListener {


    public Activity c;
    public Dialog d;
    public Button yes;

    public VerifyDialog(Activity a) {
        super(a);
        // TODO Auto-generated constructor stub
        this.c = a;
      }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.verify_dialog);
        yes = (Button) findViewById(R.id.btn_yes);
        yes.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Check();




                //Sending new Activity to verify pin of user

                Intent i = new Intent(c, ProcessPinCode.class);
                EditText phone_number = (EditText) findViewById(R.id.phone_number);
                String phone = phone_number.getText().toString();
                i.putExtra("response", phone);
                c.startActivity(i);
            }

            private void Check() {
                // TODO Auto-generated method stub
                String OrgPin;


                VerifyActivity v = new VerifyActivity();
                String new_txt = v.t1.getText().toString();
                System.out.print(new_txt);//**here i want to show**
                OrgPin = v.getPinCode();


                EditText org = (EditText) findViewById(R.id.pin_code_user);

                if(!OrgPin.equals(org))
                {
                    Toast.makeText(getContext(), "Pin Code not match", Toast.LENGTH_LONG).show();
                }
            }

        });
    }

    @Override
      public void onClick(View v) {
        switch (v.getId()) {
        case R.id.btn_yes:
          c.finish();
          break;
        default:
          break;
        }
        dismiss();
      }
}

调用名为“VerifyActivity”的对话框表单活动:

VerifyDialog cdd=new VerifyDialog(VerifyActivity.this);
            cdd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            cdd.show();

有什么办法可以获取Dialog中VerifyActivity Parent的EditText的值吗?

感谢收看

【问题讨论】:

标签: android dialog


【解决方案1】:

由于您已经有一个指向您的父 Activity 的指针,因此只需将代码更改为此即可:

EditText phone_number = (EditText) c.findViewById(R.id.phone_number);

目前,您正试图在对话框布局中查找 ID 为 R.id.phone_number 的视图,但由于 EditText 实际上位于活动布局中,因此在对话框中找不到。

【讨论】:

  • 我从 4 小时开始就在搜索...谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多