Android - requestLocationUpdates вызывает идентификатор ожидаемой ошибки - PullRequest
0 голосов
/ 15 марта 2012

РЕДАКТИРОВАТЬ: Обратите внимание, что, хотя я получил ответ, я не понимаю, что не так или почему решение это исправляет.Я все еще ищу отладку ...

Я получаю сообщение об ошибке:

error: (identifier) expected

в строке

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

, где ожидаемый идентификатор указывает наthe "(".

[Примечание: на самом деле я получаю четыре из этих ошибок, указывающих на "(", "0", "0" и ")".]

Iвсегда получаю эту ошибку, когда я ошибаюсь с синтаксисом - но я не могу найти его на этот раз. Мой код относительно короткий, поэтому я делаю его на несколько шагов, но, пожалуйста, знайте, что код работает совершенно нормально, когда я закомментирую ошибочную строку выше.

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 ]

2 голосов
/ 04 октября 2012

Строка кода находится "вне" любого метода в классе. Вы можете присвоить его возвращаемое значение переменной-члену, которая позволила бы ему находиться в этой строке, но это считается "плохой формой" в программировании.

Переместите вызов в метод, который будет вызывать ваш класс.

1 голос
/ 15 марта 2012

вы не можете просто вызывать какой-либо метод внутри класса, по крайней мере, если это отдельный раздел, как этот

{
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...