0

ボタン検索をクリックすると、リストビューに画像とテキストを表示する必要がありますが、エラーが発生しsetListAdapter(new MobileArrayAdapter(this, PNames,PImages));ます。2つのクラスがあります。onformLoadを表示すると機能しますが、ボタンを使用して表示する必要があります。ここでは2つのクラスを使用します。

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

そして私の2番目のクラス、:

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...それは私に赤い線を示しています。

4

3 に答える 3

3

あなたのとして宣言thisしますContext。しかし、あなたは迷惑なタイプのクラスにいますView.OnClickListener

代わりにこれを試してください:

 setListAdapter(new MobileArrayAdapter(YourActivityName.this, PNames,PImages));
于 2012-06-27T13:08:57.320 に答える
3

コンストラクターの最初のパラメーターは型ですが、コンストラクターContextに渡すときthisは、のサブクラス内にありView.OnClickListenerます。(ほとんどの場合)アクティビティの内部クラスにいるため、親アクティビティインスタンスを渡すことを指定する必要があります。

アダプタを作成する場合は、次を使用しますMyActivity.this

setListAdapter(new MobileArrayAdapter(MyActivity.this, PNames,PImages));
于 2012-06-27T13:09:28.373 に答える
0

アダプターをListViewに設定するアクティビティでこのコードを使用すると、機能します

setListAdapter(new MobileArrayAdapter(yourActivityname.this, PNames,PImages));
于 2012-06-27T13:24:03.627 に答える