点击错误?开始新活动或包含其他活动?

时间:2015-12-30 05:46:33

标签: android onclick

我有一个应用程序,我想将QR阅读器添加为活动/模块

所以,我跟着this阅读了二维码。 这里工作正常..

所以我已将此代码添加到我的应用程序中,我想使用此活动,因为我已经设计了一个新的活动,点按它应该启动Qr阅读器..

但是我收到了这个错误...

我在这里尝试了这个

Button b = (Button) findViewById(R.id.main);
b.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
      Intent i = new Intent(Qdata.this,DecoderActivity.class);
      startActivity(i);
    }

这里DecoderActivity.calass是northig但是另一个Qr阅读器的应用程序或活动形成了上面的例子所以我想在我的活动中包括这个...

这在Manifest

   <activity
        android:name=".adata.Qdata"
        android:label="@string/app_name" >
        <intent-filter>
            <action   android:name="com.my.adata.Qdata" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <activity
        android:name=".adata.DecoderActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action   android:name="com.my.adata.DecoderActivity" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

实际上这里的adata是我的应用程序中的另一个包......主包是com.my

所以在com.my中我有另一个用于QR目的的文件我将这两个活动分开了

这是错误

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my/com.my.adata.DecoderActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
at android.app.ActivityThread.access$600(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:98)
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:91)
at android.support.v7.app.ToolbarActionBar.<init>(ToolbarActionBar.java:73)
at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:205)
at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99)
at com.my.adata.DecoderActivity.onCreate(DecoderActivity.java:43)
at android.app.Activity.performCreate(Activity.java:4470)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 
at android.app.ActivityThread.access$600(ActivityThread.java:128) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4517) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 
at dalvik.system.NativeStart.main(Native Method)

任何人都可以告诉我什么是问题......

2 个答案:

答案 0 :(得分:0)

在清单中进行此更改...

    <activity
            android:name="com.my.adata.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
            android:name="com.my.adata.Qdata"
            android:screenOrientation="portrait">
           <intent-filter>
           <action   android:name="com.my.adata.Qdata" />
           <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
        </activity>

答案 1 :(得分:0)

为什么你使用两个启动器活动尝试进行一次louncher活动而不是打电话给你的活动。

<activity
    android:name=".adata.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
    android:name="com.my.adata.Qdata">
</activity>