1

メニューである mainActivity から SoundActivity クラスに移動できます。ただし、デバイスの戻るボタンをクリックすると、mainActivity に戻らず、アプリを閉じるだけです。最後に finish() を置きましたが、うまくいかないようです。私も super.backPressed() を試しましたが、どちらもうまくいきませんでした。これはサウンドクラスのコードです

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.ToggleButton;

 public class SoundActivity extends Activity
    {
MediaPlayer ourSong;

private SeekBar volumeSeekbar = null;
private ToggleButton muteButton = null;
private AudioManager audioManager = null;

private AudioManager mAm;
private boolean mIsMute;
@Override 
protected void onCreate(Bundle savedInstanceState) 
{    
    // TODO Auto-generated method stub     
    super.onCreate(savedInstanceState);
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    setContentView(R.layout.soundmenu);
    initControls();


    ourSong = MediaPlayer.create(SoundActivity.this, R.raw.beat2);
    ourSong.start();

}



private void initControls()
{
    try
    {
        volumeSeekbar = (SeekBar)findViewById(R.id.sbVolumeBar);
        audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        volumeSeekbar.setMax(audioManager
                .getStreamMaxVolume(AudioManager.STREAM_MUSIC));
        volumeSeekbar.setProgress(audioManager
                .getStreamVolume(AudioManager.STREAM_MUSIC));   



        volumeSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
        {
            public void onStopTrackingTouch(SeekBar arg0) 
            {
            }

            public void onStartTrackingTouch(SeekBar arg0) 
            {
            }

            public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) 
            {
                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                        progress, 0);
            }
        });

        muteButton = (ToggleButton)findViewById(R.id.toggleButton1);
        muteButton.setOnClickListener(new View.OnClickListener()
        {

            public void onClick(View v) {
                // TODO Auto-generated method stub
            if(muteButton.isChecked())
            {
                AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
                  am.setStreamMute(AudioManager.STREAM_MUSIC, true);
            }
            else
            {
                AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
                  am.setStreamMute(AudioManager.STREAM_MUSIC, false);
            }
        }
        });
    }
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}



@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();

    }
}

誰かが私を助けることができれば、私は本当に感謝しています. 現時点で混乱

サウンド アクティビティを開始する mainActivity は次のとおりです。

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ToggleButton;
import android.os.Bundle;

public class PinballShooterActivity extends Activity {
/** Called when the activity is first created. */
MediaPlayer ourSong;

private ToggleButton muteButton = null;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);



    ourSong = MediaPlayer.create(PinballShooterActivity.this, R.raw.beat2);
    ourSong.start();

    Button soundBtn = (Button) findViewById(R.id.sound); 
    soundBtn.setOnClickListener(new View.OnClickListener() {



    public void onClick(View v) { 
        // TODO Auto-generated method stub             
        startActivity(new Intent(PinballShooterActivity.this, SoundActivity.class));         
        }     
    });  

    Button highScrBtn = (Button) findViewById(R.id.highscores); 
    highScrBtn.setOnClickListener(new View.OnClickListener() {



    public void onClick(View v) { 
        // TODO Auto-generated method stub             
        startActivity(new Intent(PinballShooterActivity.this, HighScoreActivity.class));         
        }     
    });

    Button gameBtn = (Button) findViewById(R.id.startgame); 
    gameBtn.setOnClickListener(new View.OnClickListener() {


         public void onClick(View v) { 
        // TODO Auto-generated method stub             
        startActivity(new Intent(PinballShooterActivity.this, GameActivity.class));         
        }     
    });
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();
    }
}

これがAndroidマニフェストです

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity 
            android:name=".SoundActivity" />
        <activity 
            android:name=".HighScoreActivity" />
        <activity 
            android:name=".GameActivity" 
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.pinball.shooter.GAMEACTIVITY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            </activity>
        <activity
            android:name=".Splash"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".PinballShooterActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action           android:name="com.pinball.shooter.faiz.PINBALLSHOOTERACTIVITY"/>

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

4

3 に答える 3

3
@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();
    }
}

onPause() に finish() があります。SoundActivity が呼び出されるたびに、MainActivity がバックグラウンドになり、その onPause() が呼び出されます。これにより、finish() が呼び出され、アクティビティが終了します。

于 2012-04-17T05:33:53.350 に答える
2

上記のコメントで指摘したように、問題はSoundActivityではなく、MainActivityにあります。SoundActivityの起動後にMainActivityを一時停止すると、次の理由で終了finish()onPause()ます。

public class PinballShooterActivity extends Activity {

    ...

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        ourSong.release();
        finish();
        }
    }

    ...

}

削除するだけfinish()で問題は解決します。

于 2012-04-17T08:34:19.993 に答える
0

はい、電話の戻るボタンを押すと、アプリケーション内のどこにでも移動できます。onBackPressed() メソッドを使用し、以下に示すようにいくつかのコード行を使用するだけです

public void onBackPressed() {

     Intent start = new Intent(Current activity.this,on which activity you want to move .class);
        startActivity(start);
        finishActivity(0);
        }
于 2012-04-17T05:43:24.380 に答える