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处出错答案 0 :(得分:0)
您必须使用共享首选项执行此操作。这很简单..而不是让活动成为偏好屏幕..请按照以下步骤...: -
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();
这个线程用于活动的计时器..如果你想要任何计时器删除线程..睡眠中的值(****)是以毫秒为单位的时间。
添加此功能也可以在活动改变后停止播放歌曲。
@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>
在你的行为中添加以下代码。所以可以称之为
@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);
}
}
最后在manifest ..代码中添加该类..
<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()中的意图中提到的相同... 这样就可以了...... :)和平......