1

我目前正在关注 dev.android.com 上的 Android 开发人员教程。我被困在音频部分。这是我的代码:

package com.example.myfirstapp;

import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity
{
  Context mContext;

  public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        mContext = this.getApplicationContext();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    public void sendMessage(View view)
    {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        Intent.putExtra(EXTRA_MESSAGE, message);
        StartActivity(intent);
    }
    
    public void playSong()
    {
        AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
    }
}

在函数playSong()中,mContext是一个类型不匹配。

我能做些什么来解决这个问题,我可以实现这里描述的功能齐全的代码。

谢谢!-达斯汀

4

1 回答 1

3

您将需要投射。

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

getSystemService()返回一个Object,由您决定是否正确转换它以使用您尝试使用的任何服务的特定方法。这是在 Android 中获取系统服务引用的标准方法。

于 2013-07-12T02:54:19.453 回答