私は3つの活動をしています。1 つ目のアクティビティには、「右に進む」イメージ ボタンがあります。(2 つ目のアクティビティに移動) 2 つ目のアクティビティには、「右に移動」と「左に移動」の両方のイメージ ボタンがあります。(最初のアクティビティに戻るか、3 番目のアクティビティに移動します)。3 番目のアクティビティには、2 番目のアクティビティに移動するための「左に移動」ボタンがあります。そして、戻るキーを押すためのイベントを作成しました。
問題は、1 番目から 3 番目のアクティビティに移動し、戻ってきてから 3 番目のアクティビティに移動することです。1 つ目のアクティビティ --- クリックすると右に移動----> 2 つ目のアクティビティ --- クリックすると右に移動-----> 3 つ目のアクティビティ --- クリックすると左に移動----> 2 つ目のアクティビティ----クリックすると左に移動- ---> 1 番目のアクティビティ----クリックして右に移動----> 2 番目のアクティビティ---クリックして右に移動-----> 3 番目のアクティビティ。
3番目のアクティビティで戻るキーを押すと、2番目に移動します。ここでバックキーを押すと1stに移動します。しかし、ここで戻るキーを押すと、最初のアクティビティに戻ります。最初のアクティビティで 2 回目の戻るキーを押すだけで、アプリケーションが終了します。追加の質問は、Imagebutton を押した場合にのみ表示する方法です。
私は何か意味がありますか?
FirstActivity.java
package com.stylingandroid.Animation;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class FirstActivity extends Activity
{
@Override
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.first );
((ImageButton)findViewById( R.id.NextButton )).setOnClickListener( new OnClickListener()
{
@Override
public void onClick( View v )
{
startActivity( new Intent( FirstActivity.this, SecondActivity.class ) );
overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left );
}
});
}
@Override
public boolean onKeyUp( int keyCode, KeyEvent event )
{
if( keyCode == KeyEvent.KEYCODE_BACK )
{
finish();
return true;
}
return super.onKeyUp( keyCode, event );
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.next:
startActivity( new Intent( FirstActivity.this, SecondActivity.class ) );
overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left );
return true;
case R.id.exit:
finish();
default:
return super.onOptionsItemSelected(item);
}
}
}
SecondActivity.java
package com.stylingandroid.Animation;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class SecondActivity extends Activity
{
private ImageButton nextbutton;
private ImageButton backbutton;
@Override
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.second );
nextbutton = (ImageButton) findViewById(R.id.NextButton);
backbutton = (ImageButton) findViewById(R.id.BackButton);
nextbutton.setOnClickListener( new OnClickListener()
{
@Override
public void onClick( View v )
{
startActivity( new Intent( SecondActivity.this, ThirdActivity.class ) );
overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_left );
}
});
backbutton.setOnClickListener( new OnClickListener()
{
@Override
public void onClick( View v )
{
finish();
startActivity( new Intent( SecondActivity.this, FirstActivity.class ) );
overridePendingTransition( R.anim.slide_in_right, R.anim.slide_out_right );
}
});
}
@Override
public boolean onKeyUp( int keyCode, KeyEvent event )
{
if( keyCode == KeyEvent.KEYCODE_BACK )
{
finish();
overridePendingTransition( R.anim.slide_in_right, R.anim.slide_out_right );
return true;
}
return super.onKeyUp( keyCode, event );
}
}
ThirdActivity.java
package com.stylingandroid.Animation;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
public class ThirdActivity extends Activity
{
@Override
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.third );
((ImageButton)findViewById( R.id.BackButton )).setOnClickListener( new OnClickListener()
{
@Override
public void onClick( View v )
{
goBack();
}
});
}
private void goBack()
{
finish();
overridePendingTransition( R.anim.slide_in_right, R.anim.slide_out_right );
}
@Override
public boolean onKeyUp( int keyCode, KeyEvent event )
{
if( keyCode == KeyEvent.KEYCODE_BACK )
{
goBack();
return true;
}
return super.onKeyUp( keyCode, event );
}
}