我正在开发带有启动屏幕的android应用。 我希望另一个活动是启动闪屏后不久开始的选项卡轻扫,然后转到主活动。

当我运行以下代码时,我的启动屏幕运行良好,但随后该应用程序停止运行而未显示tabswiper或主要活动。 我应该如何更改代码才能使其正常工作? 任何建议都将受到高度重视。

我的主要活动:MainActivity.java

package lk.sidadiya.sidadiya;

import android.os.Bundle;

import android.app.Activity;
import android.content.Intent;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        Intent i = new Intent(MainActivity.this, WelcomeScreen.class);
        startActivity(i);

        // close this activity
        finish();



    }

我的Tabswiper:WelcomeScreen.java

package lk.sidadiya.sidadiya;

import lk.sidadiya.tabswipe.adapter.TabsPagerAdapter;
import lk.sidadiya.sidadiya.R;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;


public class WelcomeScreen extends FragmentActivity implements
        ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Top Rated", "Games", "Movies" };



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Initilization
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);       

        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

}

我的初始屏幕:SplashScreen.java

package lk.sidadiya.sidadiya;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class SplashScreen extends Activity {

    // Splash screen timer
    private static int SPLASH_TIME_OUT = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable() {

            /*
             * Showing splash screen with a timer. This will be useful when you
             * want to show case your app logo / company
             */

            @Override
            public void run() {
                // This method will be executed once the timer is over
                // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);

                // close this activity
                finish();
            }
        }, SPLASH_TIME_OUT);
    }

}

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="lk.sidadiya.sidadiya"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >


         <!-- Splash screen -->

        <activity
            android:name="lk.sidadiya.sidadiya.SplashScreen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

         <!-- Welcome screen -->


        <activity
            android:name="lk.sidadiya.sidadiya.WelcomeScreen"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black" >

           <intent-filter>
                <action android:name="lk.sidadiya.sidadiya.WelcomeScreen" />

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

        <!-- Main activity -->

        <activity
            android:name="lk.sidadiya.sidadiya.MainActivity"
            android:label="@string/app_name" >

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

            </intent-filter>

        </activity>
         -->
    </application>

</manifest>

logcat的:

04-20 12:09:21.327: I/Process(1684): Sending signal. PID: 1684 SIG: 9
04-20 12:27:56.267: D/dalvikvm(1755): GC_FOR_ALLOC freed 54K, 5% free 2808K/2948K, paused 300ms, total 303ms
04-20 12:27:57.737: D/gralloc_goldfish(1755): Emulator without GPU emulation detected.
04-20 12:28:01.567: D/dalvikvm(1755): GC_FOR_ALLOC freed 9K, 3% free 3311K/3404K, paused 230ms, total 231ms
04-20 12:28:02.997: I/Choreographer(1755): Skipped 38 frames!  The application may be doing too much work on its main thread.
04-20 12:28:04.037: D/AndroidRuntime(1755): Shutting down VM
04-20 12:28:04.037: W/dalvikvm(1755): threadid=1: thread exiting with uncaught exception (group=0xb2ad3ba8)
04-20 12:28:04.187: E/AndroidRuntime(1755): FATAL EXCEPTION: main
04-20 12:28:04.187: E/AndroidRuntime(1755): Process: lk.sidadiya.sidadiya, PID: 1755
04-20 12:28:04.187: E/AndroidRuntime(1755): java.lang.RuntimeException: Unable to start activity ComponentInfo{lk.sidadiya.sidadiya/lk.sidadiya.sidadiya.WelcomeScreen}: java.lang.NullPointerException
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.os.Looper.loop(Looper.java:136)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.ActivityThread.main(ActivityThread.java:5017)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at java.lang.reflect.Method.invokeNative(Native Method)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at java.lang.reflect.Method.invoke(Method.java:515)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at dalvik.system.NativeStart.main(Native Method)
04-20 12:28:04.187: E/AndroidRuntime(1755): Caused by: java.lang.NullPointerException
04-20 12:28:04.187: E/AndroidRuntime(1755):     at lk.sidadiya.sidadiya.WelcomeScreen.onCreate(WelcomeScreen.java:34)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.Activity.performCreate(Activity.java:5231)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-20 12:28:04.187: E/AndroidRuntime(1755):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-20 12:28:04.187: E/AndroidRuntime(1755):     ... 11 more

activity_main.xml中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

  ask by user3554199 translate from so

本文未有回复,本站智能推荐:

1回复

启动画面中的Android加载活动

我有一个启动画面,可以从我的网络服务器下载一些文件。 下载后,我需要启动mainactivity ,它必须在运行时创建许多按钮,这需要一些时间。 是否可以在不显示mainactivity情况下启动mainactivity (因此仍显示启动画面),并让mainactivity的@onC
1回复

启动画面后的活动

一旦我的启动画面显示1000毫秒,我收到一条错误,指出“应用程序已意外停止。请再试一次。” 这似乎是一个活动,应该在启动画面不起作用后启动。 在启动画面之前,一切正常。 Logcat显示以下错误“E / AndroidRuntime(5480):java.lang.RuntimeExcep
1回复

如何始终从启动屏幕启动应用程序,然后最后启动活动

在我的应用程序中,我有多个活动,如果下次应用程序重新启动时,我将其留在应用程序的中间,它将从我离开的地方开始,我希望我的应用程序从启动屏幕重新启动,然后它应该移到我所在的活动中离开,我该怎么办
1回复

应用启动时没有启动活动

我尝试在应用程序启动时放入我的图像。 我有MainActivity并像这样制作第二个活动: 在SplashAcitivity.xml我添加: 和我将my_image复制到可绘制的文件夹中 Android Studio在我的代码中没有下划线,看起来不错,但是当我运行此应用程
2回复

切换android活动时,空指针异常

我正在开发代码以在启动屏幕后运行视图寻呼机。 我已经编写了连接这两个活动的代码,但是在运行程序时,我不断收到nullPointerException。 第一项活动: 第二活动: 表现: 日志猫:
2回复

Android异步启动屏幕不显示内容视图

在我的应用程序的主页中,有很多图像要加载到我的上传管理器活动中,因此可能需要几秒钟的时间,具体取决于有多少图像。 我计划创建一个启动画面来执行此加载,同时显示的图像不如带有标题的默认空白屏幕差。 我已经做到了这一点,应该可以正常工作,但setcontentview()确实可以运行但不会显示。
3回复

在启动画面期间按下主页按钮几秒钟后Android应用程序会打开

我有一个问题,我似乎无法弄清楚原因。 启动应用程序时,在完成并开始新活动之前,首先会显示启动画面2.5秒。 如果您在此期间按住主页或后退按钮,应用程序将正常关闭。 但是,几秒钟后(超过2.5),应用程序将打开并从启动屏幕后的活动开始。 任何帮助,为什么会发生这种情况,我 这
1回复

无法使用SplashScreen和WebView启动应用程序

我无法运行我的Android应用程序 : https : //github.com/iSCApps/isc.apps.android.videofy 。 我创建了Splash.java和MainActivity.java 。 Splash.java: MainActiv
1回复

Android:SplashScreen保持加载无关紧要

让我们尝试使其易于理解。 例如,我得到了“ Page1”和“ Page2”以及“ Page3”。 好。 我在“ Page2”上创建了一个初始屏幕,因此用户可以在特定时间(5秒)内看到“ Page2”。 它会自动将他定向到“ Page3”,我还在“ Page2”上添加了两个按钮,因此用
1回复

最初启动App简介后启动启动画面

我实现了一个应用程序简介,该应用程序首次启动时会带给用户完整的应用程序介绍。 此应用介绍仅在应用的首次首次启动时显示,此后停止。 有什么方法可以将我的启动屏幕实现到启动屏幕的位置以进行后续启动?