当我点击按钮搜索时,我需要在列表视图中显示图像和文本,但它在setListAdapter(new MobileArrayAdapter(this, PNames,PImages));
中给我一个错误..我有两个班级。
当我显示onformLoad它工作但是,现在我需要使用buttton显示它,这里我的两个classess:
B_KZN.setOnClickListener(new View .OnClickListener() {
@Override
public void onClick(View Kv) {
// TODO Auto-generated method stub
JSONObject json = JSONfunctions.getJSONfromURL("http://10.0.2.2/php/p.php");
try{
JSONArray earthquakes = json.getJSONArray("SKZN");
for(int i=0;i<earthquakes.length();i++){
JSONObject e = earthquakes.getJSONObject(i);
String BookName = e.getString("P_City");
PNames.add(BookName);
String BookImg = e.getString("Pname");
PImages.add(BookImg);
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
setListAdapter(new MobileArrayAdapter(this, PNames,PImages));
我的第二堂课:
public class MobileArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] myBookNamelist = null;
private ArrayList<String> MyP = new ArrayList<String>();
private ArrayList<String> myPurl = new ArrayList<String>();
public MobileArrayAdapter(Context context,ArrayList<String> Bname,ArrayList<String> BUrl) {
super(context, R.layout.list_mobile, Bname);
this.context = context;
this.MyP = Bname;
this.myPurl = BUrl;
}
这里我的错误:The constructor MobileArrayAdapter(new View.OnClickListener(){}, ArrayList<String>, ArrayList<String>) is undefined
... 它显示我的红线。
答案 0 :(得分:3)
您宣布this
为Context
。但是你在View.OnClickListener
试试这个:
setListAdapter(new MobileArrayAdapter(YourActivityName.this, PNames,PImages));
答案 1 :(得分:3)
构造函数的第一个参数是Context
类型,但是当将this
传递给构造函数时,您位于View.OnClickListener
的子类中。当您处于(最有可能)活动的内部类中时,您只需要指示您要传递父活动实例。
在创建适配器的位置,使用MyActivity.this
:
setListAdapter(new MobileArrayAdapter(MyActivity.this, PNames,PImages));
答案 2 :(得分:0)
在您为ListView设置适配器的活动中使用此代码,它将起作用
setListAdapter(new MobileArrayAdapter(yourActivityname.this, PNames,PImages));