0

編集:私の主な問題を修正しました。現在、あるアクティビティを開いて次のアクティビティに移動する際に問題が発生しています。私の理解では、マニフェストは「.Main」に、splash.xml ファイルを開くように指示します。スリープ コマンドは、".menu" に移動する前に 5 秒間これに残り、これにより main.xml が開きます。ただし、エミュレーターでこのアプリを実行すると、main.xml のみが表示され、5 秒のイントロがスキップされます。

ここに私のコードのページがあります:

>**Main.java**

>package com.pooks.thebasics;

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

>public class Main extends Activity {
>
    @Override
    protected void onCreate(Bundle TravisIsAwesome) {
        super.onCreate(TravisIsAwesome);
        setContentView(R.layout.splash);
        Thread logoTimer = new Thread(){
            public void run(){
                try{
                    sleep(5000);
                    Intent menuIntent = new Intent("com.pooks.thebasics.MENU");
                    startActivity(menuIntent);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
>               
                finally{
                    finish();
                }
            }
        };
        logoTimer.start();
    } 
}

   **splash.xml**   

    <?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="match_parent"
            android:background="@drawable/splash_back"
            android:orientation="vertical" >

        </LinearLayout>



>**menu.java**
>
    package com.pooks.thebasics;   
    import android.app.Activity;
    import android.os.Bundle;
> 
    public class menu extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }

        @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
        }   
    }



>**main.xml**
    <LinearLayout 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:layout_gravity="center"
        android:background="@drawable/background1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="54dp"
            android:gravity="center"
            android:height="25dp"
            android:lines="1"
            android:paddingBottom="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_vertical_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:text="@string/hello_world"
            android:textAppearance="?android:attr/textAppearanceSmallInverse"
            android:textStyle="bold"
            android:typeface="serif" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="fill_parent"
            android:layout_height="54dp"
            android:height="25dp"
            android:lines="1"
            android:paddingBottom="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_vertical_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:text="I&apos;m pookie jeans"
            android:textAppearance="?android:attr/textAppearanceSmallInverse"
            android:textStyle="bold"
            android:typeface="serif"
            android:gravity="center" />

        <Button
            android:layout_width="224dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="Button 1"
            android:textSize="25dp"
            android:textStyle="bold" />

    </LinearLayout>



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

        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />

        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.pooks.thebasics.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.pooks.thebasics.menu"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="com.pooks.thebasics.MENU" />

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

    </manifest>

コードは最適なコードではない可能性があります。しかし、それはある時点で機能していました。私がすべてをまとめたとき、それはクラッシュし始めたときです。繰り返しますが、助けていただければ幸いです。

4

2 に答える 2

0

ある特定の時間の後に 2 つ目のアクティビティを開始したい場合、なぜスリープを使用するのでしょうか? Timer同じことを達成するために使用できます。また、あなたの意図の作成は間違っています。新しいアクティビティを生成しようとしている親コンテキストを提供する必要があります。

これを試して:

new Timer().schedule(new TimerTask() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        Intent menuIntent = new Intent(Main.this, menu.class);
        startActivity(menuIntent);
    }
}, 5000);
于 2013-07-14T05:47:37.250 に答える