Android 在自定义对话框中编辑文本始终返回空值
主席先生,我将创建一个带有一些editText字段的自定义对话框,其中Listview的选定项的值将被绘制并设置为editText的值 但在执行时,它总是变成null,如下所示Android 在自定义对话框中编辑文本始终返回空值,android,android-edittext,Android,Android Edittext,主席先生,我将创建一个带有一些editText字段的自定义对话框,其中Listview的选定项的值将被绘制并设置为editText的值 但在执行时,它总是变成null,如下所示 08-29 18:08:06.211: D/dalvikvm(10652): GC_FOR_ALLOC freed 219K, 6% free 21317K/22663K, paused 11ms, total 11ms 08-29 18:08:07.811: D/debug getCovreage Addres
08-29 18:08:06.211: D/dalvikvm(10652): GC_FOR_ALLOC freed 219K, 6% free 21317K/22663K, paused 11ms, total 11ms
08-29 18:08:07.811: D/debug getCovreage Address(10652): 15
08-29 18:08:07.831: D/txtB(10652): null
08-29 18:08:07.831: D/txtFt(10652): null
08-29 18:08:07.831: D/txtFr(10652): null
您能告诉我如何在自定义editText中初始化editText,设置值并获取editText的值吗
coverageList.setBackgroundColor(Color.WHITE);
coverageList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
curservid = resultList.get(arg2).get("Block").toString();
Log.d("debug getCovreage Address" , curservid);
final Dialog dialog = new Dialog(EOrderCheckCoverage.this);
dialog.setContentView(R.layout.custom_coverage_open_order);
dialog.setTitle("Open Order");
// set the custom dialog components - text, image and button
final EditText txtB = (EditText)findViewById(R.id.txtBlock);
Log.d("txtB" , String.valueOf(txtB));
final EditText txtFt = (EditText)findViewById(R.id.txtFlat);
Log.d("txtFt" , String.valueOf(txtFt));
final EditText txtFr = (EditText)findViewById(R.id.txtBlockFloor);
Log.d("txtFr" , String.valueOf(txtFr));
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String a = txtB.getText().toString();
String b = txtFt.getText().toString();
String c = txtFr.getText().toString();
dialog.dismiss();
Toast.makeText(EOrderCheckCoverage.this, a + " " + b + " " + c, Toast.LENGTH_LONG).show();
}
});
dialog.show();
}
});
coverageList.setBackgroundColor(颜色.白色);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
curservid=resultList.get(arg2.get(“Block”).toString();
Log.d(“调试getCovreage地址”,curservid);
最终对话框=新对话框(EOrderCheckCoverage.this);
setContentView(R.layout.custom\u coverage\u open\u order);
dialog.setTitle(“未结订单”);
//设置自定义对话框组件-文本、图像和按钮
final EditText txtB=(EditText)findViewById(R.id.txtBlock);
Log.d(“txtB”,String.valueOf(txtB));
最终EditText txtFt=(EditText)findViewById(R.id.txtFlat);
Log.d(“txtFt”,String.valueOf(txtFt));
最终EditText txtFr=(EditText)findViewById(R.id.txtBlockFloor);
Log.d(“txtFr”,String.valueOf(txtFr));
Button dialogButton=(Button)dialog.findViewById(R.id.dialogButtonOK);
//如果单击按钮,则关闭自定义对话框
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串a=txtB.getText().toString();
字符串b=txtFt.getText().toString();
字符串c=txtFr.getText().toString();
dialog.dismise();
Toast.makeText(EOrderCheckCoverage.this,a+“”+b+“”+c,Toast.LENGTH_LONG).show();
}
});
dialog.show();
}
});
这样试试看
final EditText txtB = (EditText)dialog.findViewById(R.id.txtBlock);
由于您没有引用EditText绑定的视图,Android会在错误的位置查找它,而您会不断得到NPE。将dialog对象添加到上述语句将使其正确初始化。请尝试这种方式
final EditText txtB = (EditText)dialog.findViewById(R.id.txtBlock);
由于您没有引用EditText绑定的视图,Android会在错误的位置查找它,而您会不断得到NPE。将dialog对象添加到上述语句将使其正确初始化。不要执行eclipse告诉您的所有操作^^。定义全局对象并在方法体中初始化它们 在以后的活动中定义一种方法,如下所示:
public <T> T castViewById(int id){
return (T) findViewById(id);
}
不要做eclipse告诉你的一切。定义全局对象并在方法体中初始化它们 在以后的活动中定义一种方法,如下所示:
public <T> T castViewById(int id){
return (T) findViewById(id);
}
如果编辑文本在对话框布局中可用,则必须首先将对话框布局的引用用作父级 因此,如果您的编辑文本在对话框中可用,请使用以下代码:
// set the custom dialog components - text, image and button
final EditText txtB = (EditText) dialog.findViewById(R.id.txtBlock);
Log.d("txtB" , String.valueOf(txtB));
final EditText txtFt = (EditText) dialog.findViewById(R.id.txtFlat);
Log.d("txtFt" , String.valueOf(txtFt));
final EditText txtFr = (EditText) dialog.findViewById(R.id.txtBlockFloor);
Log.d("txtFr" , String.valueOf(txtFr));
如果您有任何疑问,请告诉我。如果您的编辑文本在对话框布局中可用,则必须首先使用对话框布局的引用作为父级 因此,如果您的编辑文本在对话框中可用,请使用以下代码:
// set the custom dialog components - text, image and button
final EditText txtB = (EditText) dialog.findViewById(R.id.txtBlock);
Log.d("txtB" , String.valueOf(txtB));
final EditText txtFt = (EditText) dialog.findViewById(R.id.txtFlat);
Log.d("txtFt" , String.valueOf(txtFt));
final EditText txtFr = (EditText) dialog.findViewById(R.id.txtBlockFloor);
Log.d("txtFr" , String.valueOf(txtFr));
如果您有任何疑问,请告诉我。如果符合您的要求,请尝试将此库用于片段对话框。如果符合您的要求,请尝试将此库用于片段对话框。