2012-09-20 53 views
0

我下載了zxing項目,並用按鈕創建了一個簡單的活動。這個簡單的活動應該在按下按鈕時啓動zxing項目。 現在我的問題是:我想與按鈕這個簡單的活動是開始活動 我在清單文件中創建了以下標籤如下:如何讓我的活動成爲開始活動?

開始活動:

和下載的zxing項目具有總是在開始時啓動的活動並且它具有以下清單文件:

<activity android:name=".CaptureActivity" 
      android:screenOrientation="landscape" 
      android:configChanges="orientation|keyboardHidden" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:windowSoftInputMode="stateAlwaysHidden"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN"/> 
    <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
    <intent-filter> 
    <action android:name="com.google.zxing.client.android.SCAN"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter> 
    <!-- Allow web apps to launch Barcode Scanner by linking to http://zxing.appspot.com/scan. --> 
    <intent-filter> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <category android:name="android.intent.category.BROWSABLE"/> 
    <data android:scheme="http" android:host="zxing.appspot.com" android:path="/scan"/> 
    </intent-filter> 
    <!-- We also support a Google Product Search URL. --> 
    <intent-filter> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <category android:name="android.intent.category.BROWSABLE"/> 
    <data android:scheme="http" android:host="www.google.com" android:path="/m/products 
    /scan"/> 
    </intent-filter> 
    <!-- And the UK version. --> 
    <intent-filter> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <category android:name="android.intent.category.BROWSABLE"/> 
    <data android:scheme="http" android:host="www.google.co.uk" android:path="/m 
    /products/scan"/> 
    </intent-filter> 
</activity> 
改變我的行爲是在發射後

logcat的輸出:

09-20 12:39:57.527: E/AndroidRuntime(22519): FATAL EXCEPTION: main 
09-20 12:39:57.527: E/AndroidRuntime(22519): java.lang.RuntimeException: Unable to 
resume activity 
{com.google.zxing.client.android/com.google.zxing.client.android.Test}: 
java.lang.NullPointerException 
09-20 12:39:57.527: E/AndroidRuntime(22519): at  
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2456) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2484) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1998) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.ActivityThread.access$600(ActivityThread.java:127) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.os.Handler.dispatchMessage(Handler.java:99) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.os.Looper.loop(Looper.java:137) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.ActivityThread.main(ActivityThread.java:4507) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
java.lang.reflect.Method.invokeNative(Native Method) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
java.lang.reflect.Method.invoke(Method.java:511) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
dalvik.system.NativeStart.main(Native Method) 
09-20 12:39:57.527: E/AndroidRuntime(22519): Caused by: java.lang.NullPointerException 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
com.google.zxing.client.android.CaptureActivity.onResume(CaptureActivity.java:178) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1157) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.Activity.performResume(Activity.java:4539) 
09-20 12:39:57.527: E/AndroidRuntime(22519): at 
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2446) 

我只是想知道如何使簡單的活動我創建的啓動活動。換句話說,將簡單活動的標籤放置在zxing項目的清單文件中的位置?

+0

你想要什麼?哪一個正在開始活動?或者如何在清單文件中添加活動? – 2012-09-20 10:10:31

+0

名稱爲「.Test」的第一個代碼是開始活動。 – Amr

+0

在您的活動:做這樣的: 2012-09-20 10:18:09

回答

0

我想你應該從CaptureActivity清單文件刪除

<intent-filter> 
    <action android:name="android.intent.action.MAIN"/> 
    <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 

。 並且簡單地添加

<activity 
     android:name=".Test" 
     android:screenOrientation="portrait" 
     android:configChanges = "keyboardHidden|orientation" 
     android:label="@string/app_name01" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

你已經顯示的代碼部分之後。我沒有嘗試過。讓我知道它是否有效?

+0

應用程序崩潰....... – Amr

+0

@Amr你如何整合兩者? – MGDroid

+0

我的確如你所發佈的,但應用程序崩潰 – Amr

0

所有你應該做的是改變:

<activity android:name="Leeder" 

到:

<activity android:name="LeederTitleScreen" 

如果你希望你的標題畫面開始通過startActivity()的比賽中,你還需要在清單中聲明你的Leeder活動。

編輯:是的,你需要該部分。它告訴系統您的活動將會響應哪些隱含意圖。因此,在您的清單中,意圖過濾器告訴系統它將響應android.intent.category.LAUNCHER意圖,這是Android在啓動應用程序時調度的內容(即它告訴Android在應用程序啓動時啓動Activity )。

下面是簡要說明:http://developer.android.com/guide/components/intents-filters.html

0

你的問題是安靜簡單。

您只需要將意圖過濾器從清單文件中的捕獲活動中移除並像您已經在做的那樣將其放入您的活動中。因爲啓動器活動應該是一個項目中的一個,所以如果你想用你的活動啓動應用程序,那麼你應該不得不使用意向過濾器將你的類作爲啓動器活動在menifest文件中。

然後它會從您的活動開始。

+0

我應該從捕獲活動中移除所有意圖過濾器標籤並將它們放入我的活動中嗎?因爲捕獲活動有許多意圖過濾器標記 – Amr

+0

不,如果您只刪除那個洗滌劑意圖,那麼它就會執行 '只刪除這個。 – Hemant

+0

我這樣做了,但應用程序然後崩潰 – Amr

0

簡單的像這樣使用LAUNCHER

<activity 
      android:name=".YourActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" />  
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
+0

我試過這個,但應用程序崩潰...請注意,捕獲activitv有超過onr意圖過濾器標籤 – Amr

+0

我應該從捕獲活動中刪除所有意圖過濾器標籤,並將它們放在我的activitv? – Amr

+0

我瘦你改變CaptureActivity與您的需求活動 –