使用AlertDialog.Builder类设置view的时候,不能显示我的布局内容
Julse 2017-06-10 04:06:24 使用AlertDialog.Builder类设置view的时候,如果写在类中显得代码比较臃肿,但是如果把view单独封装在一个函数中,此时只能显示图标和按钮,不能显示我的布局内容。
view=new Regist_dialog(LoginActivity.this);
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
builder.setTitle("注册");
builder.setIcon(R.drawable.smile);
builder.setView(view);
builder.setInverseBackgroundForced(false);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(LoginActivity.this, view.regist_action(), Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
封装的view如下:
package view;
import model.UserInfo;
import model.WeatherDB;
import com.julse.com.R;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class Regist_dialog extends View{
private EditText e_name;
private EditText e_pwd;
private EditText e_pwd_repeat;
private Context context ;
private WeatherDB weatherDB;
public Regist_dialog(Context context) {
super(context);
this.context = context;
LayoutInflater inflater = LayoutInflater.from(context);
View view=inflater.inflate(R.layout.regist_layout, null);
e_name=(EditText)view. findViewById(R.id.editText1);
e_pwd=(EditText) view.findViewById(R.id.editText2);
e_pwd_repeat=(EditText)view. findViewById(R.id.editText3);
Log.i("Life","e_name is empty:"+(e_name==null));
}
public String regist_action(){
String name=e_name.getText().toString();
String pwd=e_pwd.getText().toString();
String pwd_repeat= e_pwd_repeat.getText().toString();
String mes=null;
weatherDB= WeatherDB.getInstance(context);
// TODO Auto-generated method stub
if (TextUtils.isEmpty(name)||TextUtils.isEmpty(pwd)||TextUtils.isEmpty(pwd_repeat)) {
mes = "用户名或密码不能为空";
}else if (pwd.equals(pwd_repeat)) {
mes = "两次输入密码不一致";
}else if (weatherDB.find_user(name)) {
mes = "用户名已存在";
}
else {
UserInfo userInfo = UserInfo.getInstance();
userInfo.setUsername(name);
userInfo.setUserpwd(pwd);
if (weatherDB.regist(userInfo)) {
Log.i("Life", "注册成功");
mes = "注册成功";
}else {
mes = "注册失败";
}
}
return mes;
}
}