2012-07-02 177 views
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 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> 
+0

Can你发布了EJ_Board的XML代码? – BlackHatSamurai

+0

好吧我更新了它。 – todaroa

+0

我有点困惑,为什么你的屏幕上有一个菜单inflater。您的启动画面应该在没有任何菜单的情况下转换到您的下一页。我认为这与您的问题没有任何关系,但无论如何,仍然需要考虑。 :) – BlackHatSamurai

回答

1

的XML我觉得你的问题是与ImageView的。您需要将图像添加到您的可绘制文件夹中,然后将您的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); 

    } 
} 
+0

转换没有任何错误,我认为它开始活动错误 – todaroa

+0

您是否将活动添加到Android清单中?如果你愿意,发布你的Android清单。 – BlackHatSamurai

+0

我添加了一些可能对您有帮助的代码。请让我知道这对你有没有用。 – BlackHatSamurai