2014-06-03 1 views
-1

Помогите мне в кодировании. Я не умею кодировать java и xml, поэтому помогите.Отмена postDelayed с кнопкой (onClick)

Активность активности за 1500 мс, после чего основное видение активности. Я хочу добавить кнопку пропуска в вводную активность.

Когда нажата кнопка пропустить, я хочу перейти к основной деятельности.

Это мой код:

MainActivity.java

package com.bedrock.schedule; 

import android.R.menu; 
import android.R.anim; 
import android.R.layout; 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.ImageView; 


public class MainActivity extends Activity { 

private BackPressCloseHandler backPressCloseHandler; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //Start Transition Animation 
    this.overridePendingTransition(R.anim.startenter, R.anim.startexit); 
    setContentView(R.layout.activity_main); 

    //Image Animation 
    ImageView image = (ImageView)findViewById(R.id.Logo); 
    Animation animation=AnimationUtils.loadAnimation(this, R.anim.logoenter); 
    image.startAnimation(animation); 

    //Image Homepage Link 
    image.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.addCategory(Intent.CATEGORY_BROWSABLE); 
      intent.setData(Uri.parse("http://young-dong.ms.kr")); 
      startActivity(intent); 
     } 
    }); 

    //Exit Toast 
    backPressCloseHandler = new BackPressCloseHandler(this); 
} 

//Button Activity Link 
public void ClassMain(View view) 
{ 
    Intent intent = new Intent(MainActivity.this, ClassMain.class); 
    startActivity(intent); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

//Exit Toast 
@Override 
public void onBackPressed() { 
    //super.onBackPressed(); 
    backPressCloseHandler.onBackPressed(); 
} 

//Finish Transition Animation 
@Override 
public void finish() { 
    super.finish(); 
    this.overridePendingTransition(R.anim.endenter, R.anim.endexit); 
} 

}

IntroActivity.java

package com.bedrock.schedule; 

import com.bedrock.schedule.R; 

import android.os.Bundle; 
import android.os.Handler; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 

public class IntroActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.overridePendingTransition(R.anim.startenter, R.anim.startexit); 
    setContentView(R.layout.activity_intro); 

    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 
      Intent intent = new Intent(IntroActivity.this, MainActivity.class); 
      startActivity(intent); 

      //Don't show on back - Finish 
      finish(); 
     } 
    }, 1500); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.intro, menu); 
    return true; 
} 

public void Skip(View view) 
{ 
    Intent intent = new Intent(IntroActivity.this, MainActivity.class); 
    startActivity(intent); 
} 

}

Помощь ... Если вы можете написать d собственный код, пожалуйста. Я застрял в этом и не могу ловить в магазин приложений ...

ответ

0

Очень просто, вам даже не нужно отменять Runnable. Просто добавьте:

private boolean mAlreadyGone; 

в классе. Тогда как в методе Skip() и Runnable код, начните с:

if (mAlreadyGone) 
    return; 

mAlreadyGone = true; 
+0

Я хочу, чтобы пропустить интро, когда я нажимаю на кнопку, она открывает новую основную деятельность, и когда я выйти из основного вида деятельности, основные шоу деятельности еще раз. –

+0

@BedrockPictures Да, это потому, что вы вызываете startActivity() дважды. Делая что-то подобное, вы убедитесь, что это сделано только один раз. – matiash