синтаксическая ошибка на маркер 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 вам нужно иметь все исполняемые операторы в методе. Только объявления переменных класса/экземпляра могут находиться вне метода/конструкторов.