I'm having trouble with settting some text to EditText every time a dialog is loaded.
The problem is whenever the dialog window appears there should be some specific text in the editText that can be edited. It can't be made static (defined in XML), so where should I put the code like wrapper.setText("some phone number etc");
?
Here is the code:
private void edit(final long id) {
if (id>0)
{
LayoutInflater inflator = LayoutInflater.from(this);
View dialogView = inflator.inflate(R.layout.editonly, null);
final editDialogContentGetter wrapper = new editDialogContentGetter(dialogView);
new AlertDialog.Builder(this).setTitle(R.string.edit).
setView(dialogView).setPositiveButton(R.string.edit,new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
basicallyEdit(wrapper);
}}).setNegativeButton(R.string.cancel,new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
开发者_StackOverflow社区 Toast.makeText(AllPhones2.this,R.string.nochange,Toast.LENGTH_SHORT).show();
}}).show();
}
}
protected void basicallyEdit(editDialogContentGetter wrapper) {
// some code here to process information recieved by the dialog
}
class editDialogContentGetter
{
//class for dialog
EditText editphoneBox = null;
View base2 = null;
public editDialogContentGetter(View base2) {
// TODO Auto-generated constructor stub
this.base2 = base2;
}
public EditText getEditBoxField()
{
if(editphoneBox==null)
{
editphoneBox =(EditText) base2.findViewById(R.id.editphone);
}
return editphoneBox;
}
public String getEditBoxText()
{
return getEditBoxField().getText().toString();
}
}
got it working .. all i had to do is call is findViewById() on alertdialog object and call setText there code goes like this
EditText ed=(EditText) editDialog.findViewById(R.id.editphone); ed.setText("1234");
thanks anyways
精彩评论