2017-06-22 34 views
-2

我想叫AudioManager類的getSystemService這樣getSystemService無法在Android Studio中被稱爲

package com.example.android.miwok; 
import android.app.Activity; 
import android.content.Context; 
import android.media.AudioManager; 
import android.media.Image; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.support.annotation.NonNull; 
import android.support.v4.content.ContextCompat; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 

import static android.media.AudioManager.AUDIOFOCUS_GAIN; 
import static android.media.AudioManager.AUDIOFOCUS_LOSS; 
import static android.media.AudioManager.AUDIOFOCUS_LOSS_TRANSIENT; 
import static android.media.AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK; 
import static android.view.View.GONE; 


public class WordAdapter extends ArrayAdapter<Word> { 
private static final String LOG_TAG = WordAdapter.class.getSimpleName(); 
private int mColorResourceId; 
private MediaPlayer mMediaPlayer; 
private final static int MAX_VOLUME = 100; 

public WordAdapter(Activity context, ArrayList<Word> words, int 
colorResourceId) { 

    super(context, 0, words); 
    mColorResourceId = colorResourceId; 
} 
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
. 
. 
. 
} 

系統稱它無法解析法「getSystemService」。根據我的理解,找不到方法。我試着添加'這個'。在方法之前,我仍然找不到方法。我嘗試將WordAdapter類更改爲private或protected,但不允許這樣做。 任何幫助或澄清將不勝感激!

+1

使上下文的實例變量,並調用'上下文.getSystemService()' – Opiatefuchs

+0

@Opiatefuchs我對android編程和java相當陌生,你能澄清一下什麼是「上下文的實例變量」嗎? –

+0

我做了一個例子作爲答案.. – Opiatefuchs

回答

0

使Context一個實例變量,並在構造函數初始化這個:

private Context mContext; 

public WordAdapter(Context context, ArrayList<Word> words, int 
colorResourceId) { 

    super(context, 0, words); 
    mColorResourceId = colorResourceId; 
    this.mContext = context; 
} 

然後你可以從mContext調用系統服務:

AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);