7

我在以下行中收到“此令牌后预期的令牌变量声明器上的语法错误”

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



}
4

2 回答 2

9

把这个移到里面onCreate

 AQuery listAq = new AQuery(this);
 ArrayAdapter<JSONObject> aa = new ArrayAdatper<JSONObject>(this, R.layout.activity_main, items){
 ....
于 2013-07-06T03:43:16.683 回答
1

您的代码中几乎没有可见的问题

首先在下面的声明中:

listAq = new AQuery(this);

listAq 属于哪种类型?它没有在您的代码中定义它必须类似于

AQuery listAq;
listAq = new AQuery(this);

当您尝试使用“this”进行初始化时,this 代表当前对象。在调用您的构造函数之前,不会创建当前对象。在变量初始化之后调用构造函数。所以你的陈述在语义和逻辑上都是错误的。您需要在非静态方法中移动此语句以初始化您的 listAq 对象;

另一个有问题的陈述:

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

您需要再次将此代码移动到要运行的方法中。在java中,您需要在方法中包含所有可执行语句。只有类/实例变量声明可以在方法/构造函数之外。

于 2013-07-06T04:33:34.557 回答