本文转载>>About Doyee ®™<<的博客,http://hi.baidu.com/doyee/blog/item/754c9eca2bc5c98dc9176808.html 转载注明出处
dialog_edit_text.xml如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/edittext_view"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="@string/str_info_na"
android:layout_marginTop="8dip"
android:layout_marginBottom="8dip"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip">
</TextView>
<EditText android:id="@+id/edittext_edit"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginBottom="8dip"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip">
<requestFocus />
</EditText>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding ="6px"
android:background="#ffffff">
<Button android:id="@+id/plsBtnConfirm"
android:layout_width="120px" android:layout_height="wrap_content"
android:text="@string/str_ok"
android:layout_alignParentLeft="true" />
<Button android:id="@+id/plsBtnCancel"
android:layout_width="120px" android:layout_height="wrap_content"
android:text="@string/str_cancel"
android:layout_alignParentRight="true" />
</RelativeLayout>
</LinearLayout>
通常使用的SetView(view)会显示如下效果
LayoutInflater factory = LayoutInflater.from(m_activity);
final View textEntryView = factory.inflate(R.layout.dialog_edit_text, null);
EditText etCon = (EditText)textEntryView.findViewById(R.id.edittext_edit);
etCon.setText(strContent);
TextView tvCon = (TextView)textEntryView.findViewById(R.id.edittext_view);
m_btnConfirm = (Button)textEntryView.findViewById(R.id.plsBtnConfirm);
m_btnCancel = (Button)textEntryView.findViewById(R.id.plsBtnCancel);
if (0 != strTitle.length())
tvCon.setText(strTitle);
m_currDlg = new AlertDialog.Builder(m_activity).create();
m_currDlg.setView(textEntryView);
m_currDlg.show();
底部有条黑线
如果使用
m_currDlg = new AlertDialog.Builder(m_activity).create();
m_currDlg.setView(textEntryView,0,0,0,0);
m_currDlg.show();
则可以得到想要的自定义的dialog
此时就可以控制Dialog在按了OK或者cancel的显示还是消失了
LayoutInflater factory = LayoutInflater.from(m_activity);
final View textEntryView = factory.inflate(R.layout.dialog_edit_text, null);
EditText etCon = (EditText)textEntryView.findViewById(R.id.edittext_edit);
etCon.setText(strContent);
TextView tvCon = (TextView)textEntryView.findViewById(R.id.edittext_view);
m_btnConfirm = (Button)textEntryView.findViewById(R.id.plsBtnConfirm);
m_btnCancel = (Button)textEntryView.findViewById(R.id.plsBtnCancel);
if (0 != strTitle.length())
tvCon.setText(strTitle);
m_currDlg = new AlertDialog.Builder(m_activity).create();
m_currDlg.setView(textEntryView);
m_currDlg.show();
View.OnClickListener clickListener = new View.OnClickListener(){
@Override
public void onClick(View v) {
long id = v.getId();
if(id == R.id.plsBtnConfirm){
EditText etPl = (EditText)textEntryView.findViewById(R.id.edittext_edit);
String str = etPl.getText().toString().trim();
boolean bValid = UtilFun.isInputTextValid(str);
if (!bValid)
{
showWarningDlg("",m_activity.getString(R.string.str_invalid_playlist));
}
else
{
boolean bDismiss = isPlaylistNameValid(str,NEWPLS_INPUT);
if(bDismiss == true) m_currDlg.cancel();
}
}else if(id ==R.id.plsBtnCancel){
m_currDlg.cancel();
}
}
};
m_btnConfirm.setOnClickListener(clickListener);
m_btnCancel.setOnClickListener(clickListener);