2013-12-02 2 views
-2

Я разрабатываю игру через Andengine для платформ Android. Я создал LevelEditorScene, и я хочу использовать сообщения Тост на нем нравится:Toast Сообщения в Android

Toast.makeText(activity, " Upload Started ...", Toast.LENGTH_SHORT).show(); 

Но это создает ошибку. Вот logCat: http://s9.postimg.org/jfqwsvx7j/Captu1re.png

В чем проблема, можете ли вы решить эту проблему?


Вот целые мои коды:

LevelEditorScene.java

@Override 
public void createScene() 
{ 

    //ekrana eleman eklemek için 
    setOnSceneTouchListener(this); 



    Rectangle save = new Rectangle(100, 400, 80, 50, vbom){ 
      @Override 
      public boolean onAreaTouched(TouchEvent pTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) { 

       if(pTouchEvent.getAction() == MotionEvent.ACTION_DOWN) 
       { 
        Toast.makeText(activity, " Upload Started ...", Toast.LENGTH_SHORT).show(); 





       /* getAllObjectsData(); 
        createXmlFile(x, y, distanceordirection, type); 
        */ 

       } 
       return true; 
      } 
     }; 
    save.setColor(1.0f,0.4f,0.5f); 
    registerTouchArea(save); 
    attachChild(save); 
    } 

SceneManager.java

public void loadEditorScene(final Engine mEngine) 
{ 
    setScene(loadingScene); 
    ResourcesManager.getInstance().unloadMenuTextures(); 
    mEngine.registerUpdateHandler(new TimerHandler(0.1f, new ITimerCallback() 
    { 
     public void onTimePassed(final TimerHandler pTimerHandler) 
     { 
      mEngine.unregisterUpdateHandler(pTimerHandler); 
      ResourcesManager.getInstance().loadGameResources(); 
      editorScene = new LevelEditorScene(); 
      setScene(editorScene); 
     } 
    })); 
} 

GameActivity.java

 public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws IOException 
{ 
    mEngine.registerUpdateHandler(new TimerHandler(2f, new ITimerCallback() 
    { 
      public void onTimePassed(final TimerHandler pTimerHandler) 
      { 
       mEngine.unregisterUpdateHandler(pTimerHandler); 
       SceneManager.getInstance().createMenuScene(); 
      } 
    })); 
    pOnPopulateSceneCallback.onPopulateSceneFinished(); 
} 
+0

Вы пытаетесь изменить пользовательский интерфейс в потоке. Переместите свой код в onPostExecute, если он у вас есть. –

+0

Вы называете это из потока пользовательского интерфейса? –

+0

Это не выглядит проблемой, касающейся toast.you работает нить внутри основного, сделать это правильно. – Hamad

ответ

1
runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           Toast.makeText(activity.this, "message", Toast.LENGTH_SHORT).show(); 

          } 
         }); 
+0

он тоже не работал – user1391058

+0

post ur весь код ... , –

0

если вы используете Тост в статической функции она не должна работать

вы можете сделать это добавить это до OnCreate функции:

static Activity thisActivity = null; 

и в OnCreate функции:

thisActivity = this; 

и затем вы можете использовать тост:

Toast.makeText(thisActivity , "message", Toast.LENGTH_SHORT).show();