синтаксическая ошибка на маркер variabledeclaratorid ожидать после этого маркер

Im получает "синтаксическая ошибка на токене variabledeclaratorid ожидается после этого токена" в следующей строке

  listAq = new AQuery(this);

вот мой полный код

 package com.example.test;

import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

import com.androidquery.AQuery;

public class TestActivity extends Activity {



    private AQuery aq;

    @Override
    public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);



    }

    listAq = new AQuery(this);

    ArrayAdapter<JSONObject> aa = new ArrayAdatper<JSONObject>(this, R.layout.activity_main, items){


        @Override

        public View getView(int position, View convertView, ViewGroup parent){

            if(convertView == null){
            convertView = getLayoutInflater().inflate(R.layout.activity_main, null);
            }

            JSONObject jo = getItem(position);

            AQuery aq = listAq.recycle(convertView);
            aq.id(R.id.name).text(jo.optString("titleNoFormating", "No Title"));
            aq.id(R.id.meta).text(jo.optString("publisher", ""));

            String tb = jo.optJSONObject("image").optString("tbUrl");
            aq.id(R.id.tb).progress(R.id.progress).image(tb,true, true,0,0,null,AQuery.FADE_IN_NETWORK,1.0f);
            return convertView;
        }
    };



}

2 ответов


переместить внутри onCreate

 AQuery listAq = new AQuery(this);
 ArrayAdapter<JSONObject> aa = new ArrayAdatper<JSONObject>(this, R.layout.activity_main, items){
 ....

несколько видимых проблем формировать ваш код

первый в приведенном ниже заявлении:

listAq = new AQuery(this);

listAq какого типа? Это не определено в вашем коде, это должно быть что-то вроде

AQuery listAq;
listAq = new AQuery(this);

когда вы пытаетесь инициализировать с помощью "this", это означает текущий объект. Текущий объект не будет создан, пока не будет вызван ваш конструктор. Конструктор вызывается после инициализации переменных. Так что ваше утверждение как sytantically и логически неправильно. Вам нужно переместить этот оператор в нестатический метод для инициализации объекта listAq;

еще одно проблемное утверждение:

ArrayAdapter<JSONObject> aa = new ArrayAdatper<JSONObject>(this, R.layout.activity_main, items){

нужно снова переместить этот код в метод для запуска. В java вам нужно иметь все исполняемые операторы в методе. Только объявления переменных класса/экземпляра могут находиться вне метода/конструкторов.