0

コードは正しく設定されていると思いますが、デバッグしようとすると、スプラッシュ画面から移行した後、黒い画面になります。レイアウトを正しくインポートしたことはわかっていますが、それでも黒くなります。

これはスプラッシュ画面のコードです

package com.example.equate.jones;



import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class EJ_Splash extends Activity {

    protected boolean _active = true;
    protected int _splashTime = 3000;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ej__splash);

        // thread for displaying the SplashScreen
        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                        synchronized(this){
                            wait(4000);
                        }

                    }
                 catch(InterruptedException e) {
                    // do nothing
                } {

                    finish();

                    Intent i = new Intent(getApplicationContext(),EJ_Board.class);
                    startActivity(i);
                }
            }
        };
        splashTread.start();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_ej__splash, menu);
        return true;
    }


}

これは、遷移先の画面のコードです。

package com.example.equate.jones;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class EJ_Board extends Activity {

    private ImageView button1;
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.warm);

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ej_board);


        button1=(ImageView)findViewById(R.id.imageView1);

        button1.setOnClickListener(new View.OnClickListener() 
        { 
            public void onClick(View view) 
            { 

                mp.start(); 
            }
        });
    }

}

これは EJ_Board の 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:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

</LinearLayout>
4

1 に答える 1

1

あなたの問題はImageViewにあると思います。drawable フォルダーに画像を追加してandroid:src="@drawable/ic_launcher"から、保存した画像の名前に変更する必要があります。これにより、ボタンに必要な画像が得られます。それが役立つことを願っています

編集:

スプラッシュ スクリーンについては、次のようにしてみてください。

public class SplashActivity extends Activity  {
   private long splashDelay = 5000;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        TimerTask task = new TimerTask()
        {

            @Override
            public void run() {
                finish();
                Intent homeIntent = new Intent().setClass(SplashActivity.this, HomeActivity.class);
                startActivity(homeIntent);

            }

        };

        Timer timer = new Timer();
        timer.schedule(task, splashDelay);

    }
}

次に、ホーム アクティビティでメニューを設定できます。

public class HomeActivity extends Activity {

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

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.layout.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case R.id.locationButton:
                Intent locationIntent = new Intent(this, LocationActivity.class);
                startActivity(locationIntent);
                return true;
            case R.id.diningButton:
                Intent diningIntent = new Intent(this, DiningActivity.class);
                startActivity(diningIntent);
                return true;

            case R.id.topXXVButton:
                Intent topIntent = new Intent(this, DiningActivity.class);
                startActivity(topIntent);
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

これを試して:

public class SplashActivity extends Activity  {
   private long splashDelay = 5000;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        TimerTask task = new TimerTask()
        {

            @Override
            public void run() {
                finish();
                Intent mainIntent = new Intent().setClass(EJ_Splash.this, EJ_Board.class);
                startActivity(mainIntent);

            }

        };

        Timer timer = new Timer();
        timer.schedule(task, splashDelay);

    }
}
于 2012-07-02T23:27:11.667 に答える