Java Android类型不匹配:无法从JSONArray转换为ArrayList

Java Android类型不匹配:无法从JSONArray转换为ArrayList,java,android,string,arraylist,Java,Android,String,Arraylist,我试图在片段中创建一个列表视图,但我得到了这个。我在注释中添加了错误注释。我不知道为什么,因为我是android的新手,有谁能帮帮我吗 这条线上有多个标记 类型不匹配:无法从JSONArray转换为ArrayList> 类型ArrayList的方法长度未定义> 对于类型ArrayList> FragmentaReviews.java public class FragmentaReviews extends SherlockFragment { private JSONReview json;

我试图在片段中创建一个列表视图,但我得到了这个。我在注释中添加了错误注释。我不知道为什么,因为我是android的新手,有谁能帮帮我吗

这条线上有多个标记

类型不匹配:无法从JSONArray转换为ArrayList> 类型ArrayList的方法长度未定义> 对于类型ArrayList> FragmentaReviews.java

public class FragmentaReviews extends SherlockFragment {

private JSONReview json;
ListView list;
TextView title;
ArrayList<HashMap<String, String>> ListReview = new ArrayList<HashMap<String, String>>();

//URL to get JSON Array
private static String url = "http:/10.0.3.2/1aaa/listreview.php";

//JSON Node Names
private static final String TAG_Review = "ListReview";
private static final String TAG_title = "title";

JSONArray reviews = null;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.row_main, container, false);


}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);

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

            new JSONParse().execute();  

}


private class JSONParse extends AsyncTask<String, String, JSONObject> {

    private ProgressDialog pDialog;
    JSONReview jParser = new JSONReview();
   // json = new JSONReview();
    private JSONObject json;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        title = (TextView)getView().findViewById(R.id.title);

        pDialog = new ProgressDialog(getActivity());
        pDialog.setMessage("Getting Data ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();


    }

    @Override
    protected JSONObject doInBackground(String... args) {

        // Getting JSON from URL
        json = jParser.getJSONFromURL(url);

        return json;
    }

    @Override
    protected void onPostExecute(JSONObject json) {

        pDialog.dismiss();
        try {


             //Change here
             // Getting JSON Array from URL 
            JSONArray jsonArray = json.getJSONArray(TAG_Review);

             for(int i = 0; i < jsonArray.length(); i++){

                 JSONObject c = jsonArray.getJSONObject(i);

               //Stop here



                 // Storing  JSON item in a Variable
                 String title = c.getString(TAG_title);

                 // Adding value HashMap key => value
                 HashMap<String, String> map = new HashMap<String, String>();
                 map.put(TAG_title, title);



                 ListReview.add(map);

                 list = (ListView)getView().findViewById(R.id.list);

                 ListAdapter adapter = new SimpleAdapter(getActivity(), ListReview,
                     R.layout.fragmenta_review,
                     new String[] { TAG_title, TAG_tujuanwisata}, new int[] {
                         R.id.title);
                 list.setAdapter(adapter);
                 list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                     @Override
                     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                     }
                 });
             }
        } catch (JSONException e) {
          e.printStackTrace();
        }
    }
}
}
logcat

  01-08 17:47:32.555: E/WindowManager(2186): Activity com.android.GoTrip.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{527c304c V.E..... R......D 0,0-684,192} that was originally added here
  01-08 17:47:32.555: E/WindowManager(2186): android.view.WindowLeaked: Activity com.android.GoTrip.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{527c304c V.E..... R......D 0,0-684,192} that was originally added here
  01-08 17:47:32.555: E/WindowManager(2186):    at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
  01-08 17:47:32.555: E/WindowManager(2186):    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.app.Dialog.show(Dialog.java:281)
 01-08 17:47:32.555: E/WindowManager(2186):     at com.android.GoTrip.FragmentaReviews$JSONParse.onPreExecute(FragmentaReviews.java:92)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.os.AsyncTask.execute(AsyncTask.java:534)
 01-08 17:47:32.555: E/WindowManager(2186):     at com.android.GoTrip.FragmentaReviews.onActivityCreated(FragmentaReviews.java:70)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1794)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:967)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
 01-08 17:47:32.555: E/WindowManager(2186):     at  android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:477)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
 01-08 17:47:32.555: E/WindowManager(2186):     at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:302)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
 01-08 17:47:32.555: E/WindowManager(2186):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.View.measure(View.java:15848)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1905)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1284)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.Choreographer.doCallbacks(Choreographer.java:562)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.Choreographer.doFrame(Choreographer.java:532)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.os.Handler.handleCallback(Handler.java:730)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.os.Handler.dispatchMessage(Handler.java:92)
 01-08 17:47:32.555: E/WindowManager(2186):     at android.os.Looper.loop(Looper.java:137)
 01-08 17:47:32.555: E/WindowManager(2186):     at  android.app.ActivityThread.main(ActivityThread.java:5103)
 01-08 17:47:32.555: E/WindowManager(2186):     at java.lang.reflect.Method.invokeNative(Nati
在这里:

ListReview=json.getJSONArrayTAG_Review

您正在尝试将从json.getJSONArrayTAG_Review返回的JSONArray分配给列表对象ListReview。从JSONObject获取JSONArray as:

JSONArray jsonArray = json.getJSONArray(TAG_Review);

并使用jsonArray而不是ListReview从jsonArray获取长度和值。

您声明了一个成员变量

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


并使用数组进行解析

我已经发布了我的日志。。Activity com.android.GoTrip.main Activity已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView{527c304c V.E…..R……D 0,0-684192}最初添加到这里的是01-08 17:47:32.555:E/WindowManager2186:android.view.WindowLeaked:Activity com.android.GoTrip.main活动泄漏了最初添加到这里的window com.android.internal.policy.impl.PhoneWindow$DecorView{527c304c V.E…..R……d0,0-684192}
JSONArray jsonArray = json.getJSONArray(TAG_Review);
ArrayList<HashMap<String, String>> ListReview = new ArrayList<HashMap<String, String>>();
ListReview = json.getJSONArray(TAG_Review);
JSONArrary array = json.getJSONArray(TAG_Review);