[英]How can I turn one specific audio file on or off with CheckBox or toggle button from one activity to another in android?
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class Settings_Menu extends Activity {
private MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_menu);
TurnSoundOff();
}
private void TurnSoundOff() {
final CheckBox TurnSoundOff= (CheckBox) findViewById(R.id.StartupsoundoffBox);
TurnSoundOff.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (TurnSoundOff.isChecked()){
mp = MediaPlayer.create(MainActivity.class, R.raw.soundfile); //errors at .create since I can't use a class
mp.stop();
}else{
mp = MediaPlayer.create(MainActivity.class, R.raw.soundfile);
mp.start();
}
}});
}
}
这是我的代码,我只是试图从打开应用程序时关闭或打开指定的音频文件。 我在另一个活动中有复选框或切换按钮。 我正在使用媒体播放器,以及一些Android编码的新功能,感谢您的阅读。 我通过点击溢出来设置设置动作,然后点击设置按钮进入活动状态,并且当从设置活动中单击检查时,我希望音频关闭或在MainActivity.xml中重新打开。 再次感谢您的阅读和事先帮助。 由于无法使用类,因此它在.create处出错
您必须使用共享首选项来执行此操作。 这非常简单..而不是进行活动,而是创建首选项屏幕..请按照下列步骤..:-
1)转到资源文件夹。 2)创建一个名为“ xml”的新文件夹。 3)在创建的xml文件夹中,创建一个名为“ prefs.xml”的xml文件。
在那个sdd下面的代码..:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:defaultValue="false"
android:key="music"
android:summary="Tick to listen the music"
android:title="Intro Music" >
</CheckBoxPreference>
</PreferenceScreen>
现在转到播放歌曲的活动。
ourSong = MediaPlayer.create(Splash.this, R.raw.splash_sound);
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
boolean music = getPrefs.getBoolean("music", true);
if (music == true)
ourSong.start();
Thread timer = new Thread() {
public void run() {
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
}
}
};
timer.start();
此线程用于您的活动的计时器。.如果您不希望任何计时器删除该线程.. sleep(****)中的值是以毫秒为单位的时间。
添加此功能还可以在更改活动后停止播放歌曲。
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
ourSong.release();
}
要获取溢出菜单,请执行以下操作:-1)创建一个名为menu的新文件夹2)创建一个xml文件..添加以下代码。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:title="Preferences"
android:id="@+id/preferences" />
<item android:title="Exit"
android:id="@+id/exit" />
</menu>
在您的活动中添加以下代码..以便可以调用prefernece
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
MenuInflater blowUp = getMenuInflater();
blowUp.inflate(R.menu.cool_menu, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.preferences:
Intent b = new Intent("com.example.code.PREFS");
//instead of 'com.example.code' write your package name
startActivity(b);
break;
case R.id.exit:
finish();
break;
}
return false;
}
最后创建一个名为Prefs的类,并添加以下代码。
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Prefs extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
}
最后,在清单中添加该类。
<activity
android:name="com.example.code.Prefs"
android:label="Preferences" >
<intent-filter>
<action android:name="com.example.code.PREFS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
您的动作名称应与您在onMenuItemSelected()的意图中提到的名称相同...这可以解决问题... :)和平...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.