syntax error on token variabledeclaratorid expected after this token

匆匆过客 提交于 2020-01-03 08:45:10

问题


Im getting "syntax error on token variabledeclaratorid expected after this token" on the following line

  listAq = new AQuery(this);

Here is my full code

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



}

回答1:


Move this inside onCreate

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



回答2:


Few visible problems form your code

First in the below statement:

listAq = new AQuery(this);

listAq is of which type? It is not defined in your code It has to be somehting like

AQuery listAq;
listAq = new AQuery(this);

As you are trying to initialize with 'this', this stands for the current object. Current object will not be created until your constructor is called. Constructor is called after the variables initialization. So your statement is both sytantically and logically wrong. You need to move this statement in a non-static method to initialize your listAq object;

Another problematic statement:

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

You need to move this code again to a method to run. In java you need to have all executable statements in a method. Only class/instance variable declarations can be outside the method/constructors.



来源:https://stackoverflow.com/questions/17499455/syntax-error-on-token-variabledeclaratorid-expected-after-this-token

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!