0

我正在尝试学习一些 java/android 开发,但我真的很努力学习基础知识。

我的代码看起来像这样。

package com.example.app_james3;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    MediaPlayer media=MediaPlayer.create(this, R.raw.button);
    media.start();  // THIS LINE IS GIVING ERROR: Syntax error on token "start",    Identifier expected after this token

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @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;
    }

}

任何人都可以提供建议以使这条非常简单的线路正常工作吗?我复制了其他代码,所以我相当确定语法是正确的。

4

2 回答 2

2

在 Java 中,所有语句(任何未声明变量或类的语句)都必须放在方法或构造函数中。media.start();是一个声明。因此,你应该把它放在一个方法中。

因为media.start();应该在接近启动时间执行,所以把它放在onCreate

MediaPlayer media;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Your initialization code goes here:
    media = MediaPlayer.create(this, R.raw.button);
    media.start();
}
于 2013-03-31T08:53:00.097 回答
0

您必须在活动中声明变量,但是当您在函数内部或setcontentview之后从 xml 初始化值时。您还必须阅读以下链接:- 为什么 onClickListener 在 onCreate 方法之外不起作用?

什么时候调用 Application 的 onCreate() 方法?

什么是 onCreate(Bundle savedInstanceState)

public class MainActivity extends Activity { 



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

MediaPlayer media=MediaPlayer.create(this, R.raw.button);
media.start();  // THIS LINE IS GIVING ERROR: Syntax error on token "start",    Identifier expected after this token
}

@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;
}

}
于 2013-03-31T08:56:35.677 回答