![](/img/trans.png)
[英]How to get a reference to ListFragment's adapter and underlying data from MainActivity?
[英]How to reference resId's from MainActivity to Service
我必須將我的MediaPlayer移出MainActivity並移入服務。
我的代碼當前具有MainActivity中托管的所有按鈕,但是當按下按鈕時,會為其分配一個ID(resId),這樣我就可以使用常規MediaPlayer代碼播放任何按下的按鈕。
例如:
public void onClick(View v) {
int resId;
switch (v.getId()) {
case R.id.button_1:
resId = R.raw.birdsong;
break;
case R.id.button_2:
resId = R.raw.brown_noise;
break;
case R.id.button_3:
resId = R.raw.car_journey;
break;
case R.id.button_4:
resId = R.raw.crackling_fire;
break;
case R.id.button_5:
resId = R.raw.electrifying_thunderstorms;
break;
case R.id.button_6:
resId = R.raw.fan;
break;
case R.id.button_7:
resId = R.raw.jungle_river;
break;
case R.id.button_8:
resId = R.raw.pig_frogs;
break;
case R.id.button_9:
resId = R.raw.pink_noise;
break;
case R.id.button_10:
resId = R.raw.predawn;
break;
case R.id.button_11:
resId = R.raw.rain;
break;
case R.id.button_12:
resId = R.raw.shower;
break;
case R.id.button_13:
resId = R.raw.snoring;
break;
case R.id.button_14:
resId = R.raw.whale_song;
break;
case R.id.button_15:
resId = R.raw.white_noise;
break;
default:
resId = R.raw.birdsong;
break;
}
// Release any resources from previous MediaPlayer
if (mp != null) {
mp.release();
}
// Create a new MediaPlayer to play this sound
mp = MediaPlayer.create(this, resId);
mp.setLooping(true);
mp.start();
我如何將代碼移至服務,但仍在MainActivity上保留按鈕? 該服務將無法識別與該按鈕關聯的resId,因為所有代碼都位於MainActivity中,因此不會播放正確的聲音。
您可以編寫一個ContentProvider並將自己的自定義名稱/標識符發送到該服務,以使其通過ContentProvider使用提供的名稱訪問活動應用程序的資源。 在這里閱讀它們: http : //developer.android.com/guide/topics/providers/content-providers.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.