0

ArrayList<HashMap<String,String>>, int, String[], int[])このエラー「 is undefined 」が表示される理由がわかりません

 // THE ERROR IS RIGHT HERE TO
           ListAdapter adapter = new SimpleAdapter(this, contactList,
                    R.layout.main,
                    new String[] { TAG_FIRSTNAME, TAG_EMAIL, TAG_PHONE }, new int[] {
                            R.id.nameFirst, R.id.email, R.id.mobile });
           //HERE

これが私のコードです。アイデアは、アプリ エンジン データストアから JSON を取得し、それをリスト ビューに分割することです。

package com.indeeditis; 




public class FinderActivity extends ListActivity   {


private static final String TAG_ID = "id";
private static final String TAG_FIRSTNAME = "nameFirst";
private static final String TAG_LASTNAME = "nameLast";
private static final String TAG_EMAIL = "emailAddress";
private static final String TAG_ADDRESS = "address";
private static final String TAG_STATE = "state";

private static final String TAG_PHONE = "phone";
JSONArray contacts = null;

ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.finder);

   // Button start = (Button)findViewById(R.id.button9000);
    //start.setOnClickListener(this);
    new EndpointsTask().execute(getApplicationContext());

}



public class EndpointsTask extends AsyncTask<Context, Integer, Long> {

    public Long doInBackground(Context... contexts) {

      Contactinfoendpoint.Builder endpointBuilder = new Contactinfoendpoint.Builder(
          AndroidHttp.newCompatibleTransport(),
          new JacksonFactory(),
          new HttpRequestInitializer() {
          public void initialize(HttpRequest httpRequest) { }
          });
  Contactinfoendpoint endpoint = CloudEndpointUtils.updateBuilder(
  endpointBuilder).build();

  try {

     // final TextView detail = (TextView)findViewById(R.id.textView100);

    String apples = endpoint.listContactInfo().execute().toString();

    JSONObject jObject = new JSONObject(apples);

           try{
        //Get the element that holds the earthquakes ( JSONArray )
        JSONArray  contacts = jObject.getJSONArray("item");

        for(int i = 0; i < contacts.length(); i++){
            JSONObject c = contacts.getJSONObject(i);

            // Storing each json item in variable
            String id = c.getString(TAG_ID);
            String nameFirst = c.getString(TAG_FIRSTNAME);
            String nameLast = c.getString(TAG_LASTNAME);
            String email = c.getString(TAG_EMAIL);
            String address = c.getString(TAG_ADDRESS);
            String phone = c.getString(TAG_PHONE);

            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();

            // adding each child node to HashMap key => value
            map.put(TAG_ID, id);
            map.put(TAG_FIRSTNAME, nameFirst);
            map.put(TAG_EMAIL, email);
            map.put(TAG_PHONE, phone);

            // adding HashList to ArrayList
            contactList.add(map);



        }

           }catch(JSONException e)        {
             Log.e("log_tag", "Error parsing data "+e.toString());
           }


             // THE ERROR IS RIGHT HERE TO
           ListAdapter adapter = new SimpleAdapter(this, contactList,
                    R.layout.main,
                    new String[] { TAG_FIRSTNAME, TAG_EMAIL, TAG_PHONE }, new int[] {
                            R.id.nameFirst, R.id.email, R.id.mobile });
           //HERE
           setListAdapter(adapter);

            // selecting single ListView item
            ListView lv = getListView();

  } catch (IOException e) {
    e.printStackTrace();
  } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
      return (long) 0;
    }


    }

}
4

2 に答える 2

2

SimpleAdapterコンストラクターは 1 つだけです。

public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

使用している

new SimpleAdapter(this, // not a Context
                contactList, // List
                R.layout.main, // int
                new String[] { TAG_FIRSTNAME, TAG_EMAIL, TAG_PHONE }, // String[]
                new int[] {R.id.nameFirst, R.id.email, R.id.mobile }); // int[]

wherethisは ではなく、インスタンスContextへの参照です。が の内部クラスである場合にEndpointsTask使用します。FinderActivity.thisEndpointsTaskFinderActivity

于 2013-08-31T14:49:26.320 に答える