我在下一行
上获得“此令牌后预期的令牌变量声明的语法错误” 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;
}
};
}
答案 0 :(得分:9)
将其移至onCreate
AQuery listAq = new AQuery(this);
ArrayAdapter<JSONObject> aa = new ArrayAdatper<JSONObject>(this, R.layout.activity_main, items){
....
答案 1 :(得分:1)
您的代码中几乎没有可见的问题
首先在下面的陈述中:
listAq = new AQuery(this);
listAq是哪种类型的?它没有在你的代码中定义它必须像
一样AQuery listAq;
listAq = new AQuery(this);
当您尝试使用'this'初始化时,这代表当前对象。在调用构造函数之前,不会创建当前对象。变量初始化后调用构造函数。因此,您的陈述既是历史性的,也是逻辑错误的。您需要在非静态方法中移动此语句以初始化listAq对象;
另一个有问题的陈述:
ArrayAdapter<JSONObject> aa = new ArrayAdatper<JSONObject>(this, R.layout.activity_main, items){
您需要再次将此代码移动到要运行的方法。在java中,您需要在方法中包含所有可执行语句。只有类/实例变量声明可以在方法/构造函数之外。