2012-07-02 4 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(); 
      } 
     }); 
    } 

} 

Это XML для 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 вы публикуете свой XML-код для EJ_Board? – BlackHatSamurai

+0

Хорошо, я обновил его. – todaroa

+0

Я немного растерялся, почему у вас на экране заставки есть меню. Ваш экран заставки должен просто перейти на следующую страницу без какого-либо меню. Я не думаю, что это имеет какое-либо отношение к вашей проблеме, но независимо от того, что-то нужно думать. :) – BlackHatSamurai

ответ

1

Я думаю, ваша проблема с ImageView. Вам нужно добавить изображение в свою папку, а затем изменить android:src="@drawable/ic_launcher" на имя сохраненного изображения. Это даст вам изображение, необходимое для вашей кнопки. Надежда, что помогает

Edit:

для экрана-заставки, попробовать что-то вроде этого:

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

Смежные вопросы