首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

关于对话框dialog的应用以及dialog的继承

2012-09-17 
关于对话框dialog的使用以及dialog的继承?beerwine.xml ?xml version1.0 encodingutf-8? TableLa

关于对话框dialog的使用以及dialog的继承


关于对话框dialog的应用以及dialog的继承
?beerwine.xml

<?xml version="1.0" encoding="utf-8"?>

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? ?android:orientation="vertical" android:stretchColumns="0"
? ? ?android:background="@drawable/bg" android:layout_gravity="center_vertical|center_horizontal"
? ? ?android:layout_height="wrap_content" android:layout_width="wrap_content">

? ? ?<TableRow>
? ? ?? ? ?<TextView android:textColor="#ffffff" android:text="beer:"
? ? ?? ? ?? ? ?android:textSize="16px" android:layout_marginLeft="6dip"
? ? ?? ? ?? ? ?android:layout_gravity="center_vertical" />
? ? ?? ? ?<CheckBox android:id="@+id/checkboxBeer"
? ? ?? ? ?? ? ?android:layout_gravity="right|top" />
? ? ?</TableRow>

? ? ?<TableRow>
? ? ?? ? ?<TextView android:textColor="#ffffff" android:text="wine:"
? ? ?? ? ?? ? ?android:textSize="16px" android:layout_marginLeft="6dip"
? ? ?? ? ?? ? ?android:layout_gravity="center_vertical" />
? ? ?? ? ?<CheckBox android:id="@+id/checkboxWine"
? ? ?? ? ?? ? ?android:layout_gravity="right|top" />
? ? ?</TableRow>

? ? ?<TableRow android:layout_marginTop="230px">
? ? ?? ? ?<Button android:id="@+id/buttonOK" android:text="ok"
? ? ?? ? ?? ? ?android:layout_height="wrap_content" android:layout_width="wrap_content" />
? ? ?</TableRow>
</TableLayout>
public class Second extends Activity {

? ? ?@Override
? ? ?public void onCreate(Bundle savedInstanceState) {
? ? ?? ? ?super.onCreate(savedInstanceState);

? ? ?? ? ?Dialog dialog = new Dialog(this);
? ? ?? ? ?dialog.setContentView(R.layout.beerwine);
? ? ?? ? ?dialog.setTitle("beer or wine");
? ? ?? ? ?dialog.show();
? ? ?}
}
上面的代码实现了那张图片的功能,其中图片中的酒杯是作为背景出现的并不存在一个vimageView

主要?dialog.setContentView(R.layout.beerwine); 的使用。

?

如果继续使用点击事件

public class Second extends Activity {

? ? ?@Override
? ? ?public void onCreate(Bundle savedInstanceState) {
? ? ?? ? ?super.onCreate(savedInstanceState);

? ? ?? ? ?Dialog dialog = new Dialog(this);
? ? ?? ? ?dialog.setContentView(R.layout.beerwine);
? ? ?? ? ?dialog.setTitle("beer or wine");
? ? ?? ? ?dialog.show();

? ? ?? ? ?Button buttonOK = (Button) dialog.findViewById(R.id.buttonOK);
? ? ?? ? ?buttonOK.setOnClickListener(new OKListener(dialog));
? ? ?}

? ? ?protected class OKListener implements OnClickListener {

? ? ?? ? ?private Dialog dialog;

? ? ?? ? ?public OKListener(Dialog dialog) {
? ? ?? ? ?? ? ?this.dialog = dialog;
? ? ?? ? ?}

? ? ?? ? ?public void onClick(View v) {
? ? ?? ? ?? ? ?dialog.dismiss();
? ? ?? ? ?}
? ? ?}
}

这里面一定要注意Button buttonOK = (Button) dialog.findViewById(R.id.buttonOK);
是通过dialog引用出button其实你也可以用inflater的。

3.如果想继续扩展 添加选择框的选择事件

public class Third extends Activity {

? ? ?@Override
? ? ?public void onCreate(Bundle savedInstanceState) {
? ? ?? ? ?super.onCreate(savedInstanceState);

? ? ?? ? ?BeerWineDialog dialog = new BeerWineDialog(this, true, true);
? ? ?? ? ?dialog.show();
? ? ?}
}

?

public class BeerWineDialog extends Dialog {

? ? ?private boolean beer;
? ? ?private boolean wine;

? ? ?public BeerWineDialog(Context context, boolean beer, boolean wine) {
? ? ?? ? ?super(context);
? ? ?? ? ?this.beer = beer;
? ? ?? ? ?this.wine = wine;
? ? ?}

? ? ?@Override
? ? ?public void onCreate(Bundle savedInstanceState) {
? ? ?? ? ?super.onCreate(savedInstanceState);

? ? ?? ? ?setContentView(R.layout.beerwine);
? ? ?? ? ?setTitle("beer or wine");

? ? ?? ? ?CheckBox cbBeer = (CheckBox) findViewById(R.id.checkboxBeer);
? ? ?? ? ?cbBeer.setChecked(beer);

? ? ?? ? ?CheckBox cbWine = (CheckBox) findViewById(R.id.checkboxWine);
? ? ?? ? ?cbWine.setChecked(wine);
? ? ?? ? ?
? ? ?? ? ?Button buttonOK = (Button) findViewById(R.id.buttonOK);
? ? ?? ? ?buttonOK.setOnClickListener(new OKListener());
? ? ?}

? ? ?private class OKListener implements android.view.View.OnClickListener {

? ? ?? ? ?@Override
? ? ?? ? ?public void onClick(View v) {
? ? ?? ? ?? ? ?BeerWineDialog.this.dismiss();
? ? ?? ? ?}
? ? ?}

}
这也呢最终继承了一个dialog控件

热点排行