Android - requestLocationUpdates导致标识符预期错误

时间:2012-03-14 23:38:10

标签: java android gps identifier

编辑:请注意,虽然我收到了答案,但我不明白什么是错的,或者为什么解决方案会修复它。我还在寻找一个揭穿......

我收到错误:

error: (identifier) expected

就行了

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

其中标识符指向“(”。

[注意:我实际上有四个错误指向“(”,“0”,“0”和“)”。]

当我使用语法时总是会出现此错误 - 但这次我找不到它。我的代码相对较短,所以我请它,但请注意,当我注释掉上面的违规行时,代码完全正常。

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View.*;
import android.view.View;
import android.content.Context;
import java.lang.CharSequence;
import android.widget.Toast;
import android.location.*;


public class Entrance extends Activity
{

/** Called when the activity is first created. */
@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button bGPS = (Button)findViewById(R.id.button_gps);
        bGPS.setOnClickListener(bGPSListener);
    }

LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

LocationListener locationListener = new LocationListener()
{
    public void onLocationChanged(Location location)
    {
        Context context = getApplicationContext();
        CharSequence text = "Location found.";
        int duration = Toast.LENGTH_SHORT;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
};

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);   

private OnClickListener bGPSListener = new OnClickListener()
{
    public void onClick(View v)
    {
        Context context = getApplicationContext();
        CharSequence text = "Hello toast!";
        int duration = Toast.LENGTH_SHORT;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();
    }
};
}

2 个答案:

答案 0 :(得分:2)

代码行是类中任何方法的“外部”。您可以将其返回值分配给一个成员变量,该变量允许它在该行上,但在编程中被认为是“不良形式”。

将调用移动到您的类将调用的方法中。

答案 1 :(得分:1)

你不能只在类中调用任何方法,至少把它放在像这样的单独部分

{
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);   
}