我在写一个单选框选择游戏模式和背景音乐的时候,用getSharedPreferences()函数把数据放到data.xml上了,
可是当要在另外一个activity获取数据的时候就会出现空指针异常,可是我游戏设置模式的时候也是一样的代码,是可行的,到了背景音乐就不行了。请大家帮忙看看。
import five.itcast.cn.music.MyMediaPlayer;
import android.R.string;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;//程序入口Activity
public class SetActivity extends Activity {
private RadioGroup m_Group1;
private RadioGroup m_Group2;
private RadioButton m_Radio1;
private RadioButton m_Radio2;
private RadioButton m_Radio3;
private RadioButton m_Radio4;
private Editor player;
private Editor music;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog);
player = getSharedPreferences("data", 0).edit(); //获取数据库编辑的对象
music = getSharedPreferences("data", 0).edit();
m_Group1=(RadioGroup) findViewById(R.id.radioGroup1);
m_Group2=(RadioGroup) findViewById(R.id.radioGroup2);
m_Radio1=(RadioButton) findViewById(R.id.radio1);
m_Radio2=(RadioButton) findViewById(R.id.radio2);
m_Radio3=(RadioButton) findViewById(R.id.radio3);
m_Radio4=(RadioButton) findViewById(R.id.radio4);
StartActivity.mediaPlayer=new MyMediaPlayer(this);
m_Group1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkid) {
if(checkid==m_Radio1.getId()){
player.putString("player","computer"); //指定数据的存放
player.commit();
// System.out.println("aaa");
// Log.d("debug","mes" );
}
else{
player.putString("player","man");
player.commit();
}
}
});
m_Group2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkid)
{
if(checkid==m_Radio3.getId())
{
music.putInt("music",1); //指定数据的存放
music.commit();
StartActivity.mediaPlayer.setIsPlaying(true);
}
else
{
music.putInt("music",0); //指定数据的存放
music.commit();
StartActivity.mediaPlayer.setIsPlaying(false);
}
}
});
}
}package five.itcast.cn.music;
import five.itcast.cn.R;
import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.util.Log;
import android.widget.Toast;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;public class MyMediaPlayer {
private Editor music;
private Activity context; //消息显示文本
private MediaPlayer player;
public MyMediaPlayer(Context c) {
player=MediaPlayer.create(c, R.raw.playermusic);
player.setLooping(true);
}
public void setmusic(int value){
if(value==1)
{
player.start();
}
else
{
player.pause();
}
}
public void setIsPlaying(boolean misplay) {
SharedPreferences music = getSharedPreferences("data", 0); //定义获取数据对象
int value=music.getInt("music",0); //获取数据
Log.d("debug",Integer.toString(value));
setmusic(value);
}
private SharedPreferences getSharedPreferences(String string, int i) {
// TODO Auto-generated method stub
return null;
}
public void releasePlayer() {
if (player!=null) {
player.release();
}
}
}
以下是错误信息
java.lang.nullpointeception
five.itcast.cn.music.MyMediaPlayer.setIsPlaying(MyMediaPlayer.java:34)
红色那句是出错误的语句。
解决方案 »
- 关于support.v4与基础类库的转换
- android代码拷贝的问题,困扰一天了。
- activity 跳转到mapactivity 报空指针异常 急~~~~~
- BitmapDrawable
- 怎么在android上实现ftp的下载啊
- popupwindow 中加listview,点击item时popupwindow不消失的问题??
- 后端用什么语言好?
- android需要考虑结束线程吗?
- viewpager + FragmentPagerAdapter + fragment切换报错
- Mac系统怎么安装Android的ADT和SDK啊?被墙了,下不了啊!
- 调用gps信息在android2.2下正常,但是2.3以上gps设备显示出来,就是无法读出经纬度
- android图片旋转和cos.jar架包
那你去data\data目录下看了没有,到底存在吗?