按钮在Android AudioManager中不工作



大家好,我是android开发的新手,我正在尝试制作一个简单的音频管理器,其中MainActivity类将处理按钮侦听器事件,Listeners将具有silent()、vibrate()、ring()方法。到目前为止,应用程序正在启动,但每当我单击vibrate按钮时,应用程序就会得到强制关闭。我认为我的代码有问题,但由于我是新手,我无法解决。

MainActivity.java

public class MainActivity extends Activity {
private Button home, pocket, silent;
private TextView tv;
private Listeners myAudManHolder;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    home = (Button) findViewById(R.id.home);
    pocket = (Button) findViewById(R.id.pocket);
    silent = (Button) findViewById(R.id.silent);
    tv = (TextView) findViewById(R.id.tv);
    myAudManHolder = new Listeners();
    pocket.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            myAudManHolder.vibrate();
        }
    });
}

监听器.java

public class Listeners {
AudioManager myAudMan;
public void vibrate() {
    myAudMan.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
   }
}

LogCat日志

10-28 20:57:51.381: W/dalvikvm(1232): threadid=1: thread exiting with uncaught exception (group=0x40015560)
10-28 20:57:51.401: E/AndroidRuntime(1232): FATAL EXCEPTION: main
10-28 20:57:51.401: E/AndroidRuntime(1232): java.lang.NullPointerException
10-28 20:57:51.401: E/AndroidRuntime(1232):     at edu.shihank.audiomanager.Listeners.vibrate(Listeners.java:13)
10-28 20:57:51.401: E/AndroidRuntime(1232):     at edu.shihank.audiomanager.MainActivity$1.onClick(MainActivity.java:39)

我的vibrate()方法及其OnClickListener事件有什么问题?求你了,我今天需要这个解决方案,你的帮助将是非常可观的。Tnx。

Listeners.java中的myAudMan为null。

试试这个

在MainActivity.java 中

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
myAudManHolder = new Listeners(am);


公共类监听器{AudioManager myAudMan;

Listners(AudioManager audioManager){
 this.myAudMan = audioManager;
 }
public void vibrate() {
    myAudMan.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
   }
}

最新更新