我有一个任务是通过xml更改AlertDialog的宽度和高度,我希望make成为样式,所以我可以轻松使用它.而且,我需要更改AlertDialog样式的按钮.你能告诉我一种方法来实现target.Thank你非常感激.
PS,我最好通过改变xml来实现目标.
PS,我最好通过改变xml来实现目标.
解决方法
有两种方法1)以编程方式2)通过使用xml布局
1)=======> AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(layout); builder.setTitle("Title"); alertDialog = builder.create(); alertDialog.show(); alertDialog.getWindow().setLayout(600,400); //Controlling width and height. ( or ) alertDialog.show(); WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.copyFrom(alertDialog.getWindow().getAttributes()); lp.width = 150; lp.height = 500; lp.x=-170; lp.y=100; alertDialog.getWindow().setAttributes(lp);
2)========>
choose.xml
<TextView android:id="@+id/img" android:layout_width="wrap_content" android:text="@string/choose" android:textSize="25dp" android:textColor="#fff" android:layout_height="50dp"/> <TableLayout android:id="@+id/table" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#fff" android:orientation="vertical"> <TableRow android:id="@+id/tr1" android:orientation="horizontal" android:layout_margin="10dp"> <ImageView android:contentDescription="@string/phone" android:src="@drawable/phone" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/phnText" android:layout_width="wrap_content" android:text="@string/phone" android:gravity="left|center_vertical" android:layout_marginLeft="10dp" android:textSize="25dp" android:textColor="#000" android:layout_height="50dp"/> </TableRow> <View android:layout_width="fill_parent" android:layout_height="1dip" android:background="#FF000000" /> <TableRow android:id="@+id/tr2" android:orientation="horizontal" android:layout_margin="10dp"> <ImageView android:contentDescription="@string/sms" android:src="@drawable/sms" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/smsText" android:layout_width="wrap_content" android:text="@string/sms" android:gravity="left|center_vertical" android:layout_marginLeft="10dp" android:textSize="25dp" android:textColor="#000" android:layout_height="50dp"/> </TableRow> </TableLayout> </LinearLayout>
将其显示为弹出窗口,如下所示
private void showPopUp() { final AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this); helpBuilder.setTitle(""); LayoutInflater inflater = getLayoutInflater(); final View checkBoxLayout = inflater.inflate(R.layout.choose,null); helpBuilder.setView(checkBoxLayout); final AlertDialog helpDialog = helpBuilder.create(); helpDialog.show(); TableRow tablerowPhone = (TableRow)checkBoxLayout.findViewById(R.id.tr1); TableRow tablerowSms = (TableRow)checkBoxLayout.findViewById(R.id.tr2); tablerowPhone.setOnClickListener(new OnClickListener() { public void onClick(View v) { helpDialog.dismiss(); Uri callUri = Uri.parse("tel:" + listview_array[4]); Intent intent = new Intent(Intent.ACTION_CALL,callUri); startActivity(intent); } }); tablerowSms.setOnClickListener(new OnClickListener() { public void onClick(View v) { helpDialog.dismiss(); Uri smsUri = Uri.parse("sms:" + listview_array[4]); Intent intent = new Intent(Intent.ACTION_VIEW,smsUri); startActivity(intent); } }); }