如何从Internet和String []数组中获取值并将其传递到Android中的网格视图?

Ruch1234

我做了从互联网获取值并将GRID_DATA数组中的数据放入网格视图的工作,它们既可以单独工作又可以很好地工作。我将两者结合在一起,其中JSONObject中的数据会将值添加到JSON数组,以便GRID_DATA将获得GRID视图所需的字符串。但是我发现了一些错误。

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;


public class QGFragment extends Fragment {

    GridView grdView;
     // This Data show in grid ( Used by adapter )
    String strurl;
    //URL to get JSON Array
    private static String url = "http://localhost/app/data.php";
    //JSON Node Names
    private static final String TAG_QP = "qp";

    private static final String TAG_NAME = "name";
    //private static final String TAG_VAL = "val";
    //private static final String TAG_NPICS = "nPics";
    JSONArray qp = null;

    static String[] GRID_DATA;

    public QGFragment(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_qg, container, false);

        grdView = (GridView)rootView.findViewById(R.id.gridview);

        new JSONParse().execute();

        // Instance of ImageAdapter Class

        grdView.setAdapter(  new GridAdapter( getActivity(), GRID_DATA ) );




        return rootView;
    }
    class GridAdapter extends BaseAdapter {

        private Context context;
        private final String[] gridValues;

        //Constructor to initialise values
        public GridAdapter(Context context, String[ ] gridValues) {

            this.context        = context;
            this.gridValues     = gridValues;
        }

        @Override
        public int getCount() {

            // Number of times getView method call depends upon gridValues.length
            return gridValues.length;
        }

        @Override
        public Object getItem(int position) {

            return null;
        }

        @Override
        public long getItemId(int position) {

            return 0;
        }


        // Number of times getView method call depends upon gridValues.length

        public View getView(int position, View convertView, ViewGroup parent) {

            // LayoutInflator to call external grid_item.xml file

            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View gridView;

            if (convertView == null) {

                gridView = new View(context);

                // get layout from grid_item.xml ( Defined Below )

                gridView = inflater.inflate( R.layout.grid_list , null);

                // set value into textview

                TextView textView = (TextView) gridView
                        .findViewById(R.id.icon_text);

                textView.setText(gridValues[position]);

                // set image based on selected text

                ImageView imageView = (ImageView) gridView
                        .findViewById(R.id.icon_image);


                    imageView.setImageResource(R.drawable.ic_launcher);

            } else {

               gridView = (View) convertView;
            }

            return gridView;
        }
    }
    private class JSONParse extends AsyncTask<String, String, JSONObject> {
         private ProgressDialog pDialog;
        @Override
           protected void onPreExecute() {
               super.onPreExecute();


               pDialog = new ProgressDialog(getActivity());
               pDialog.setMessage("Getting Data ...");
               pDialog.setIndeterminate(false);
               pDialog.setCancelable(true);
               pDialog.show();
        }
        @Override
           protected JSONObject doInBackground(String... args) {
            JSONParser jParser = new JSONParser();
            // Getting JSON from URL
            JSONObject json = jParser.getJSONFromUrl(url);
            return json;
        }
         @Override
            protected void onPostExecute(JSONObject json) {
             pDialog.dismiss();
             try {


                    // Getting JSON Array
                    qp = json.getJSONArray(TAG_QP);

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

                        // Storing  JSON item in a Variable


                         String name = c.getString(TAG_NAME);
                         //String val = c.getString(TAG_VAL);
                         //String npics = c.getString(TAG_NPICS);

                         GRID_DATA[i] = name;


                        //Set JSON Data in TextView

                    };


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

         }

    } 


}

日志猫是:

12-24 20:53:06.702: W/dalvikvm(4304): threadid=1: thread exiting with uncaught exception (group=0x409961f8)
12-24 20:53:06.743: E/AndroidRuntime(4304): FATAL EXCEPTION: main
12-24 20:53:06.743: E/AndroidRuntime(4304): java.lang.NullPointerException
12-24 20:53:06.743: E/AndroidRuntime(4304):     at com.qrodsintegrated.QGFragment$GridAdapter.getCount(QGFragment.java:74)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.widget.GridView.setAdapter(GridView.java:180)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at com.qrodsintegrated.QGFragment.onCreateView(QGFragment.java:51)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:795)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:998)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.app.BackStackRecord.run(BackStackRecord.java:622)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1330)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:417)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.os.Handler.handleCallback(Handler.java:605)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.os.Looper.loop(Looper.java:137)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at android.app.ActivityThread.main(ActivityThread.java:4340)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at java.lang.reflect.Method.invokeNative(Native Method)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at java.lang.reflect.Method.invoke(Method.java:511)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-24 20:53:06.743: E/AndroidRuntime(4304):     at dalvik.system.NativeStart.main(Native Method)
12-24 20:53:08.722: I/Process(4304): Sending signal. PID: 4304 SIG: 9
罗斯·德鲁

似乎GRID_DATA从未提供任何值,因此,NullPointerException当您尝试访问时,其值是member(gridValues.lengthQGFragment.java:74

您正在将数组中的一项设置为,GRID_DATA[i] = name;但从未实际使用以下方式创建数组GRID_DATA = new String[];

阵列初始化

数组只是对象列表(在本例中为Strings)。每个对象都有一个可以[location]在该列表中访问的地址但是,如果您从未从头开始创建该列表,那么访问[location]不存在的列表将无法正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从EditText中获取值并将其求和为数组

来自分类Dev

如何从Javascript Prompt Box中获取值并将其传递到PHP变量以能够保存在SQL中?

来自分类Dev

Python:如何从列表列表中获取值并将其插入到元组列表中

来自分类Dev

C#:如何从SQL Server的特定列中获取值并将其存储到变量中

来自分类Dev

如何从异步本地存储函数中获取值并将其传递给模态 ionic 2

来自分类Dev

Python:如何使用动态键从字典中动态获取值并将其绘制到DataFrame?

来自分类Dev

如何从网格视图获取单元格值并将其存储在变量中

来自分类Dev

如何获取复选框值并将其存储到Android中的字符串数组中

来自分类Dev

从JSON获取值并将其放在String中

来自分类Dev

从JSON获取值并将其放在String中

来自分类Dev

如何从二维数组中获取值并将它们存储到单个变量中?

来自分类Dev

如何在CakePHP中呈现元素并将其传递到json数据视图

来自分类Dev

如何获取选定复选框的值并将其放入android中的String []数组中

来自分类Dev

如何从Kendo网格模板文本框中获取值到角度数组

来自分类Dev

如何从数据库获取日期并将其存储到php中的数组中?

来自分类Dev

如何从文件中获取所有数字并将其输入到数组中?

来自分类Dev

[php]如何只获取 <tag> 中的文本并将其构建到数组

来自分类Dev

如何从xml文件中获取复选框ID并将其显示到android中的页面?

来自分类Dev

如何将图像视图传递到另一个布局并将其保存在布局中?

来自分类Dev

如何获取在视图内@ Html.DropDownListFor中选择的值并将其传递给OTHER控制器中的操作?

来自分类Dev

如何获取以前的日期文件并将ls输出传递到gawk中的数组

来自分类Dev

如何获取值并将其放入数组angularjs

来自分类Dev

如何从诺言响应中获取值并将其分配给Ionic v3中数组中的每个对象属性

来自分类Dev

如何从Internet获取图像并将其粘贴到ListView中?

来自分类Dev

React-如何从多个输入中获取值并将其发送到输入中?

来自分类Dev

如何从字符串中获取值并将其表示为javascript中的json对象

来自分类Dev

如何从HTML中的元素内部获取值并将其设置为JS中的变量

来自分类Dev

如何从本地存储中获取值并将其显示在禁用的输入框中 angularjs

来自分类Dev

如何获取值并将其从一个类传递到另一个类?

Related 相关文章

  1. 1

    如何从EditText中获取值并将其求和为数组

  2. 2

    如何从Javascript Prompt Box中获取值并将其传递到PHP变量以能够保存在SQL中?

  3. 3

    Python:如何从列表列表中获取值并将其插入到元组列表中

  4. 4

    C#:如何从SQL Server的特定列中获取值并将其存储到变量中

  5. 5

    如何从异步本地存储函数中获取值并将其传递给模态 ionic 2

  6. 6

    Python:如何使用动态键从字典中动态获取值并将其绘制到DataFrame?

  7. 7

    如何从网格视图获取单元格值并将其存储在变量中

  8. 8

    如何获取复选框值并将其存储到Android中的字符串数组中

  9. 9

    从JSON获取值并将其放在String中

  10. 10

    从JSON获取值并将其放在String中

  11. 11

    如何从二维数组中获取值并将它们存储到单个变量中?

  12. 12

    如何在CakePHP中呈现元素并将其传递到json数据视图

  13. 13

    如何获取选定复选框的值并将其放入android中的String []数组中

  14. 14

    如何从Kendo网格模板文本框中获取值到角度数组

  15. 15

    如何从数据库获取日期并将其存储到php中的数组中?

  16. 16

    如何从文件中获取所有数字并将其输入到数组中?

  17. 17

    [php]如何只获取 <tag> 中的文本并将其构建到数组

  18. 18

    如何从xml文件中获取复选框ID并将其显示到android中的页面?

  19. 19

    如何将图像视图传递到另一个布局并将其保存在布局中?

  20. 20

    如何获取在视图内@ Html.DropDownListFor中选择的值并将其传递给OTHER控制器中的操作?

  21. 21

    如何获取以前的日期文件并将ls输出传递到gawk中的数组

  22. 22

    如何获取值并将其放入数组angularjs

  23. 23

    如何从诺言响应中获取值并将其分配给Ionic v3中数组中的每个对象属性

  24. 24

    如何从Internet获取图像并将其粘贴到ListView中?

  25. 25

    React-如何从多个输入中获取值并将其发送到输入中?

  26. 26

    如何从字符串中获取值并将其表示为javascript中的json对象

  27. 27

    如何从HTML中的元素内部获取值并将其设置为JS中的变量

  28. 28

    如何从本地存储中获取值并将其显示在禁用的输入框中 angularjs

  29. 29

    如何获取值并将其从一个类传递到另一个类?

热门标签

归档