C#斷定某法式能否運轉的辦法。本站提示廣大學習愛好者:(C#斷定某法式能否運轉的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#斷定某法式能否運轉的辦法正文
Activity是Android體系的4個運用法式組件之一。經由過程傳統辦法顯示的Activity都是充斥全部屏幕,也就是全屏的Activity。現實上,Activity不只可以全屏顯示,還可以象對話框一樣直接顯示在屏幕上。並且可以經由過程單擊屏幕的任何地位(包含Activity外部和Activity內部)來封閉Activity。 Activity的傳統作風 Activity是進修Android的入門技巧。簡直一切的初學者都邑從Activity學起。是以,Activity這個組件關於Android的開辟人員是再熟習不外了。上面來看一下Activity的根本設置裝備擺設。
<activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
下面的設置裝備擺設代碼是一個典范的Activity設置裝備擺設。在這個設置裝備擺設中重要指定了action和category。按著這個設置裝備擺設顯示的Activity會充斥全部屏幕。在Android中也內置了許多法式,年夜多半都邑包括Activity,例如,圖1是一個時鐘法式,也是一個典范的Activity。
懸浮Activity
所謂懸浮Activity,就是懸浮在桌面上,看起來象一個對話框。如圖2所示。
現實上,完成下面的後果其實不龐雜,只須要在AndroidManifest.xml文件中界說Activity的<activity>標簽中添加一個android:theme屬性,並指定對話框主題便可,代碼以下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.blogjava.mobile" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/date" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="3" /> </manifest> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="這是一個懸浮對話框" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="20dp"> <Button android:id="@+id/btnCurrentDate" android:layout_width="100dp" android:layout_height="wrap_content" android:text="以後日期" /> <Button android:id="@+id/btnFinish" android:layout_width="80dp" android:layout_height="wrap_content" android:text="封閉" /> </LinearLayout> </LinearLayout>
這兩個按鈕的單擊事宜代碼以下:
public void onClick(View view) { switch (view.getId()) { case R.id.btnCurrentDate: // 顯示以後日期對話框 SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd"); dateDialog.setIcon(R.drawable.date); dateDialog.setTitle("以後日期:" + simpleDateFormat.format(new Date())); dateDialog.setButton("肯定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dateDialog.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { new DateDialog.Builder(Main.this).setMessage( "您曾經封閉確當前對話框.").create().show(); } }); dateDialog.show(); break; case R.id.btnFinish: // 封閉懸浮Activity finish(); break; } }
單擊“顯示日期”按鈕後,後果如圖4所示。
觸摸任何地位都可以封閉的對話框
平日須要單擊“封閉”或其他相似的按鈕來封閉Activity或對話框。但有時須要單擊(觸摸)屏幕的任何地位來封閉Activity或對話框。封閉Activity很利益理,只須要處置Activity的觸摸事宜便可,代碼以下:
@Override public boolean onTouchEvent(MotionEvent event) { finish(); return true; }
假如是對話框,也異樣可使用onTouchEvent事宜辦法。不外普通應用了AlertDialog對話框都是封裝好的。是以,要應用onTouchEvent事宜辦法,就須要繼續AlertDialog類。在上一節給出的onClick辦法中彈出以後顯示對話框的代碼中應用了一個DateDialog類,該類是AlertDialog的子類,代碼以下:
package net.blogjava.mobile; import android.app.AlertDialog; import android.content.Context; import android.view.MotionEvent; public class DateDialog extends AlertDialog { public DateDialog(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent event) { // 封閉顯示日期對話框 dismiss(); return super.onTouchEvent(event); } }
在下面的代碼中也應用了onTouchEvent事宜辦法。在該辦法中挪用了dismiss辦法來封閉對話框。讀者可以運轉本文的例子,看看能否能經由過程單擊屏幕的任何地位來封閉對話框和懸浮Activity。
總結
本文引見了懸浮Activity和觸摸任何地位都可以封閉的對話框的完成。懸浮Activity只須要在<activity>元素中添加android:theme="@android:style/Theme.Dialog"便可。要想觸摸任何地位封閉對話框或Activity,須要應用觸摸事宜(onTouchEvent辦法)。假如是對話框,須要經由過程繼續AlertDialog類的方法來應用onTouchEvent辦法。
當應用下面的設置裝備擺設代碼時,顯示的Activity就會如圖2所示。在本例中向Activity添加了兩個按鈕,分離用來顯示以後日期和封閉對話框。