0
点赞
收藏
分享

微信扫一扫

关于对话框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控件

举报

相关推荐

0 条评论