Android alertDialog的setContentView
如果有两个文本编辑,则在对话框中弹出该对话框。我想从提交时的文本编辑中获取信息,但不知道如何获取。我也不知道如何在普通对话框中执行提交或取消按钮(我知道您可以在带有“setNegativeButton”的alertDialog上执行) 那么,如何向常规对话框添加提交或取消?到目前为止,我的工作就是:Android alertDialog的setContentView,android,android-layout,android-alertdialog,Android,Android Layout,Android Alertdialog,如果有两个文本编辑,则在对话框中弹出该对话框。我想从提交时的文本编辑中获取信息,但不知道如何获取。我也不知道如何在普通对话框中执行提交或取消按钮(我知道您可以在带有“setNegativeButton”的alertDialog上执行) 那么,如何向常规对话框添加提交或取消?到目前为止,我的工作就是: public void changeEmail(View v){ Dialog dialog = new Dialog(this); dialog.setContentView(
public void changeEmail(View v){
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.change_email_dialog);
dialog.setTitle("Enter your new email");
dialog.show();
}
我想我也在想,是否有人能快速解释一下,我将如何从对话框使用的布局中的两个文本编辑中获取信息?创建自己的对话框
class YourDialog extends Dialog {
private TextView mTextView1, mTextView1;
private Button mButton1, mButton2;
public YourDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.change_email_dialog);
// init your component from layout
// and add listiner to them
}
}
你可以试试这个代码。我这样做是为了从对话框中获取一个值。使用文本和文本2的值 创建布局文件:custom.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFF" />
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFF"/>
</RelativeLayout>
这里有一个链接,可以找到你想要的
这里有一个关于堆栈溢出的问题,它提供了有关自定义对话框的信息。我一直面临着完全相同的障碍 这是我在一项研究之后做的 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1"
tools:context="com.example.sinnaren.simply.MainActivity">
<Button
android:id="@+id/button_add_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Add a title"
android:textAllCaps="false"/>
</LinearLayout>
myDialogFragment.java
public class myDialogFragment extends DialogFragment {
private Dialog alert;
MyDialogListener dialogListener;
public interface MyDialogListener {
public void onDialogPositiveClick(DialogFragment dialog, String namel, String desc);
public void onDialogNegativeClick(DialogFragment dialog);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
dialogListener = (MyDialogListener)context;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Log.w("onCreateDialog", "onCreateDialog: onCreateDialog invoked");
AlertDialog.Builder alertDialogBuider = new AlertDialog.Builder(getActivity());
alertDialogBuider.setTitle("Add a Title");
LayoutInflater inflater = getActivity().getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.dialog_add_title_list, null);
alertDialogBuider.setView(dialogView);
alertDialogBuider.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText textChapterName = (EditText)dialogView.findViewById(R.id.edit_add_title);
EditText textChapterDesc = (EditText)dialogView.findViewById(R.id.edit_add_desc);
dialogListener.onDialogPositiveClick(myDialogFragment.this,
textChapterName.getText().toString(),
textChapterDesc.getText().toString());
}
});
alertDialogBuider.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialogListener.onDialogNegativeClick(myDialogFragment.this);
}
});
return alertDialogBuider.create();
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
Toast.makeText(getActivity(), "Dialog: onDismiss", Toast.LENGTH_SHORT).show();
}
}
使用支持库时,请确保导入的是android.support.v4.app.DialogFragment类,而不是android.app.DialogFragment
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1"
tools:context="com.example.sinnaren.simply.MainActivity">
<Button
android:id="@+id/button_add_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Add a title"
android:textAllCaps="false"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_chapter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/edit_add_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="title name"
android:inputType="textCapWords"
android:textAllCaps="false" />
<EditText
android:id="@+id/edit_add_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="title description"
android:inputType="textCapSentences"
android:textAllCaps="false" />
</LinearLayout>
public class MainActivity extends AppCompatActivity implements myDialogFragment.MyDialogListener {
private Button buttonAdd;
private myDialogFragment dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialog = new myDialogFragment();
buttonAdd = (Button)findViewById(R.id.button_add_title);
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("MainActivity", "onClick: going to show dialog");
dialog.show(getSupportFragmentManager(), "myCustomAlert !!");
}
});
}
@Override
public void onDialogPositiveClick(DialogFragment dialog, String name, String desc) {
Toast.makeText(getApplicationContext(), "name :" + name + "description :" + desc, Toast.LENGTH_SHORT).show();
}
@Override
public void onDialogNegativeClick(DialogFragment dialog) {
Toast.makeText(getApplicationContext(), "Cancel clicked", Toast.LENGTH_SHORT).show();
}
}
public class myDialogFragment extends DialogFragment {
private Dialog alert;
MyDialogListener dialogListener;
public interface MyDialogListener {
public void onDialogPositiveClick(DialogFragment dialog, String namel, String desc);
public void onDialogNegativeClick(DialogFragment dialog);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
dialogListener = (MyDialogListener)context;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Log.w("onCreateDialog", "onCreateDialog: onCreateDialog invoked");
AlertDialog.Builder alertDialogBuider = new AlertDialog.Builder(getActivity());
alertDialogBuider.setTitle("Add a Title");
LayoutInflater inflater = getActivity().getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.dialog_add_title_list, null);
alertDialogBuider.setView(dialogView);
alertDialogBuider.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText textChapterName = (EditText)dialogView.findViewById(R.id.edit_add_title);
EditText textChapterDesc = (EditText)dialogView.findViewById(R.id.edit_add_desc);
dialogListener.onDialogPositiveClick(myDialogFragment.this,
textChapterName.getText().toString(),
textChapterDesc.getText().toString());
}
});
alertDialogBuider.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialogListener.onDialogNegativeClick(myDialogFragment.this);
}
});
return alertDialogBuider.create();
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
Toast.makeText(getActivity(), "Dialog: onDismiss", Toast.LENGTH_SHORT).show();
}
}