API说警报对话框可以有一个,两个或三个按钮,但SDK只允许正面和负面按钮.那怎么可以添加第三个按钮?
我想做的是:我正在尝试制作自定义对话框.圆角.
什么是happing:我能够进行自定义对话,但它没有圆角.我尝试添加一个选择器,但我还是不能
Java代码:
private void launchDismissDlg() {
dialog = new Dialog(getActivity(), android.R.style.Theme_Dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dlg_dismiss);
dialog.setCanceledOnTouchOutside(true);
Button btnReopenId = (Button) dialog.findViewById(R.id.btnReopenId);
Button btnCancelId = (Button) dialog.findViewById(R.id.btnCancelId);
btnReopenId.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
btnCancelId.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud) 有谁知道我如何设置自定义对话框的边距?我问,因为我有一个自定义对话框但是在显示时它会延伸以填充父对象,即使我在布局参数上明确设置了WRAP_CONTENT.
基本上,对话框包含一个listview,其元素必须向下滚动,当元素为1时,它不会拉伸,但是当添加更多项时,对话框占据整个屏幕.
有什么建议?我尝试了所有可能的解决方案组合而没有取得满意的结果
编辑:添加了对话框布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="50dip"
android:orientation="vertical"
android:layout_gravity="top|center">
<FrameLayout android:layout_width="fill_parent" android:layout_margin="5dip" android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="20sp" android:textColor="@color/black"/>
<Button android:layout_height="32dip" android:layout_width="32dip"
android:id="@+id/guide_dialog_cross_button"
android:background="@drawable/button_cross_white"/>
</FrameLayout>
<ListView android:layout_width="fill_parent" android:layout_height="wrap_content"
android:fadingEdge="none"
android:layout_margin="5dip"/>
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_margin="5dip" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我有一个弹出窗口,可以在我的应用程序中下载音频指令.我想要做的是我想将"OK"的默认文本颜色更改为蓝色.我试了一下,但它不起作用.这是我的代码:
private void showDownloadPgmPopup() {
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(getActivity());
builder.setTitle("Download instructional audio?");
builder.setMessage(ParamConstants.AUDIODOWNLOADPERMISSION);
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
WwDatabaseHelper.storeSelectedWeekAndDay(getActivity(), mSelectedWeekDataModel);
goToMoveScreen();
}
});
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
AndroidDownloadFileByProgressBarActivity.StartAudioAssetDownload(getActivity());
}
}).create();
// change the text color of download instruction ok button
final android.app.AlertDialog dialog = builder.show();
dialog.setOnShowListener( new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface arg0) {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(Color.parseColor("#ff5722"));
}
});
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
但这种变化并没有反映任何人都可以告诉我我做错了什么?
我正在尝试制作一个简单的弹出窗口.但是每次我制作一个,它最终都会变得非常小......而不是我想要它的长度.这是弹出窗口的样子:

这是弹出窗口的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_element"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#444444"
android:padding="10px"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Transfering data"
android:textColor="@color/white"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Status"
android:textColor="@color/white"/>
<TextView android:id="@+id/server_status_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Awaiting answer..."
android:paddingLeft="10sp"
android:textColor="@color/white"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="center_horizontal|bottom">
<Button android:id="@+id/end_data_send_button"
android:layout_width="100dp"
android:layout_height="100dp"
android:drawablePadding="3sp"
android:layout_centerHorizontal="true"
android:text="Cancel" />
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的java代码:
private PopupWindow pw;
private void bindActivity() {
fabButton = (ImageButton) findViewById(R.id.activity_profileView_FAB);
fabButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
initiatePopupWindow();
}
});
}
private void initiatePopupWindow() {
try …Run Code Online (Sandbox Code Playgroud) 我可以创建一个没有负或正按钮的对话框.具体行动后,它会自我毁灭吗?
AlertDialog.Builder dialog_detect= new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("Detecting.....");
dialog.setMessage("Please Wait");
dialog.show();
Run Code Online (Sandbox Code Playgroud) 我想在警告对话框中添加两个编辑文本字段.就像解决方案听起来那么简单,我还没有能够收集一个工作的.我无法同时设置两个(编辑文本)视图.
如果您想查看更多代码,请发表评论.
alertDialog.setTitle("Values");
final EditText quantity = new EditText(SecondScan.this);
final EditText lot = new EditText(SecondScan.this);
quantity.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
lot.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
Project=arr[0].toString();
Item=arr[1].toString();
alertDialog.setMessage( "Employee No. : " + (Login.user).trim()+
"\nWarehouse : " + (FirstScan.Warehouse).trim()+
"\nLocation : " + (FirstScan.Location).trim()+
"\nProject : " + Project.trim() +
"\nItem : " + Item.trim() +
"\nLot : " + Lot.trim()+
"\n\nQuantity :" );
alertDialog.setView(quantity);
alertDialog.setView(lot);
// the bit of code that doesn't seem to be working.
alertDialog.setCancelable(false);
alertDialog.setPositiveButton("Update", new DialogInterface.OnClickListener() {
public void …Run Code Online (Sandbox Code Playgroud) 
如何在Android中创建这样的对话框?我的想法是创建一个自定义的xml视图并将其膨胀到对话框中.还有其他建议吗?什么是对话框中间的"拖线"?我真的需要那个.
提前致谢
我正在开发一个Android应用程序,我想在其中设置对话框的文本大小.我使用以下代码和XML进行textview,但它只设置我的字段的大小.我也想设置标题的文字大小和颜色.
final CharSequence[] items = { "Fake Request", "Abusive Language","Indecent Approach","Unacceptable Attitude","Dangerous Behavior",};
ArrayAdapter<CharSequence> itemsAdapter = new
ArrayAdapter<CharSequence> (this,
R.layout.menu_items, items);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My Title");
builder.setIcon(R.drawable.icon);
builder.setAdapter(itemsAdapter, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int item) {
switch(item) {
case 0:
//Mark as Beautiful
break;
case 1:
//Mark as Beautiful
break;
case 2:
//Mark as Not a Portrait
break;
case 3:
//Mark as Offensive
break;
case 4:
//Mark as Spam
break;
case 5:
//cancel
break;
}
} …Run Code Online (Sandbox Code Playgroud) 我已经按照此链接制作了自定义对话框,并且它的工作正常。但后来我想添加动画,使它看起来像从屏幕的顶部到底部。所以我搜索了这两个动画并找到了它们并将它们放在anim文件夹中。所以为了在我的自定义对话框中应用它们,我稍微改变了构造函数。我在自定义对话框的构造函数中添加了这一行
public AnimationDialog(Activity a, int drawable) {
super(a);
// TODO Auto-generated constructor stub
this.c = a;
this.mDrawable = drawable;
this.getWindow().getAttributes().windowAnimations = R.style.DialogSlideAnim;
}
Run Code Online (Sandbox Code Playgroud)
以下行是我为实现动画而添加的内容,如上所示
this.getWindow().getAttributes().windowAnimations = R.style.DialogSlideAnim;
但没有任何反应,我的对话框显示为默认情况
这是我的样式文件供参考
<style name="DialogAnimation">
<item name="android:windowEnterAnimation">@anim/slide_down_animation</item>
<item name="android:windowExitAnimation">@anim/slide_up_animation</item>
</style>
<!-- Animation for dialog box -->
<style name="DialogSlideAnim" parent="@android:style/Theme.Dialog">
<item name="android:windowAnimationStyle">@style/DialogAnimation</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但是我的动画仍然无法正常工作,我做错了什么,?请告诉我我怎样才能做到这一点?如何为我的自定义对话框设置动画。
编辑
这是我的下滑动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="0%p"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="100%p" />
</set>
Run Code Online (Sandbox Code Playgroud)
这是我的向上滑动动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="100%"
android:interpolator="@android:anim/accelerate_interpolator"
android:toXDelta="0" />
</set>
Run Code Online (Sandbox Code Playgroud)