[英]How can I access methods from my Main Activity in my Settings activity?
我目前正在为 Android 开发录音机应用程序。 我试图从我的设置活动访问我的MainActivity
的一些方法,以便更改我的MediaRecorder
一些设置。
我有下面的方法,它在我的MainActivity
设置录音的音频设置。
// set up all audio settings
private void setAudioSettings() {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setAudioSamplingRate(44100);
mediaRecorder.setAudioEncodingBitRate(96000);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
}
在我的设置活动中,我有一个标准的首选项屏幕,我想在其中显示更改MainActivity
媒体记录器的音频编解码器、采样率等的选项。
我如何从MainActivity
访问setAudioSettings
方法才能这样做?
如果您需要查看更多代码或屏幕截图,请告诉我。
将该方法设为静态,以便您无需创建类对象即可调用
public static void yourMethod(){
//Write your code here
}
并像这样调用你的方法:
MainActivity.yourMethod();
简短的回答是,您不应将一项活动的功能用于另一项活动。
对于您的情况,我建议您有一个单例对象或共享首选项来存储您的设置屏幕数据。 然后在 MainActivity 的 onStart 中,读取单例对象或共享首选项并相应地调用#setAudioSettings
方法。
在共享首选项中保存设置即值,然后从主活动中的首选项中获取。
您可以通过以下方式使您的方法static
:
public static void setAudioSettings() {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setAudioSamplingRate(44100);
mediaRecorder.setAudioEncodingBitRate(96000);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
}
但是要做到这一点, mediaRecorder
需要是静态的。
稍后您可以通过以下方式从任何活动调用此方法:
MainActivity.setAudioSettings();
例如,您可以在此处了解有关static
关键字的更多信息。
但是,我不确定使用静态方法是解决您问题的最佳解决方案,也许最好在您的SettingActivity
设置SharedPreferences
,然后在MainActivity
调用setAudioSettings()
方法的onResume()
中设置SharedPreferences
并从SharedPreferences
获取值?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.