Change
LayoutInflater li = LayoutInflater.from(context);
to
LayoutInflater li = LayoutInflater.from(arg0.getContext());
并改变
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
to
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(arg0.getContext());
Your context
变量是null
因为你在之前初始化它Activity
被建造。而且你不需要创建一个context
内部的变量Activity
。如果出于某种原因(也许很简单)您想使用该变量,则在您所在的位置声明它,但在内部初始化它onCreate()
另外,在里面onClick()
签名,我会将变量名称更改为有意义的名称,但这不是必需的。喜欢改变
public void onClick(View arg0)
to
public void onClick(View v)
Edit
您还需要更改这些行
EditText username = (EditText) findViewById(R.id.txt_name);
EditText password = (EditText) findViewById(R.id.password);
to
EditText username = (EditText) dialog_layoutView.findViewById(R.id.txt_name);
EditText password = (EditText) dialog_layoutView.findViewById(R.id.password);
这将告诉他们查看dialog_layout
。目前他们正在寻找layout
你膨胀的setContentView()