Android簡單例子——IpHone樣式AlertDialog,iphonealertdialog
此例子源於網路,下載下來之後,自己加了寫注釋,作為總結,發到部落格中,謝謝原作者
通過這個例子學到的東西
1.自訂對話方塊的使用
2.程式中使用顏色如何進行存放,增加複用性
3.加深線性布局、常用控制項的使用
1.實現效果
2.顏色值檔案
<?xml version="1.0" encoding="utf-8"?><resources> <drawable name="white">#FFFFFF</drawable> <color name="White">#FFFFFF</color> <color name="Black">#000000</color> <color name="grey">#D7D4D4</color> <color name="red">#FF0000</color> </resources>
3.第一個介面布局檔案
<?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="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:orientation="vertical"> <LinearLayout android:orientation="vertical" android:background="@drawable/alert" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_marginLeft="20dip" android:layout_marginRight="20dip"> <TextView android:id="@+id/dialog_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dip" android:textColor="#ffffff" android:textStyle="bold" android:textSize="17sp" android:text="About to call 323"/> <TextView android:id="@+id/dialog_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dip" android:gravity="center_horizontal" android:textSize="15sp" android:textColor="#ffffff" android:text="Are you sure you want to proceed?" /> <Button android:id="@+id/ok" android:layout_width="fill_parent" android:layout_height="40dip" android:layout_marginBottom="10dip" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:background="@drawable/custom_button" android:textColor="@color/White" android:textSize="17sp" android:textStyle="bold" android:text="OK"/> </LinearLayout></LinearLayout>
4.第二個介面的布局檔案
<?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="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:orientation="vertical"> <LinearLayout android:orientation="vertical" android:background="@drawable/alert" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_marginLeft="20dip" android:layout_marginRight="20dip"> <TextView android:id="@+id/dialog_title_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dip" android:textColor="#ffffff" android:textStyle="bold" android:textSize="17sp" android:text="About to call 323"/> <TextView android:id="@+id/dialog_message_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dip" android:gravity="center_horizontal" android:textSize="15sp" android:textColor="#ffffff" android:text="Are you sure you want to proceed?" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dip" android:layout_marginTop="10dip" android:gravity="center_horizontal" android:orientation="horizontal" > <Button android:id="@+id/cancel_2" android:layout_width="0dip" android:layout_height="40dip" android:layout_gravity="left" android:layout_marginLeft="10dip" android:layout_weight="1" android:background="@drawable/custom_button" android:text="取消" android:textColor="@color/White" android:textStyle="bold" /> <Button android:id="@+id/ok_2" android:layout_width="0dip" android:layout_height="40dip" android:layout_marginBottom="10dip" android:layout_marginRight="10dip" android:layout_weight="1" android:background="@drawable/custom_button" android:text="確定" android:textColor="@color/White" android:textStyle="bold" /> </LinearLayout> </LinearLayout></LinearLayout>
5.核心代碼檔案
public class MainActivity extends Activity { private Button btn; private Button btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn1); /**增加監聽事件**/ btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub showCustomMessageOK("提示資訊","不能進行此項操作"); } }); btn2 = (Button) findViewById(R.id.btn2); btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub showCustomMessageOKAndCancle("溫馨提示","是否確認退出"); } }); } /** * 實現一個帶有確定和取消按鈕的對話方塊 * @param title * @param message */ protected void showCustomMessageOKAndCancle(String title, String message) { // TODO Auto-generated method stub /** * 建立一個Dialog對象,Dialog有兩個構造法方法 * 1. * * **/ final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_Translucent_NoTitleBar); /**為Dialog載入布局檔案**/ dialog.setContentView(R.layout.ok_cancle_dialog_view); /**為設定相應的屬性值**/ ((TextView)dialog.findViewById(R.id.dialog_title_2)).setText(title); ((TextView)dialog.findViewById(R.id.dialog_message_2)).setText(message); ((Button) dialog.findViewById(R.id.cancel_2)).setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub dialog.dismiss(); } }); ((Button) dialog.findViewById(R.id.ok_2)).setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub MainActivity.this.finish(); System.exit(0); } }); dialog.show(); } /** * 建立一個只有確定按鈕的對話方塊 * @param title * @param message */ private void showCustomMessageOK(String title, String message) { // TODO Auto-generated method stub final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_Translucent_NoTitleBar); dialog.setContentView(R.layout.ok_dialog_view); ((TextView) dialog.findViewById(R.id.dialog_title)).setText(title); ((TextView) dialog.findViewById(R.id.dialog_message)).setText(message); ((Button) dialog.findViewById(R.id.ok)).setText("OK"); ((Button) dialog.findViewById(R.id.ok)).setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub dialog.dismiss(); } }); dialog.show(); }}
代碼