【问题标题】:Why My JSON Data Not showing in My recyclerview为什么我的 JSON 数据没有显示在我的回收站视图中
【发布时间】:2017-08-03 18:31:42
【问题描述】:

这里是 MainActivity.class 问题在哪里没有显示我的数据?** 在 logcat 中没有错误或其他东西。我第一次尝试这个。但我必须知道问题所在。here the image of emultor。我在 Onresponse 方法中使用了进度条。它不是隐形的。因为我的响应不起作用。我该如何解决这个问题?

public class MainActivity extends AppCompatActivity {
        View view;
        ArrayList<user> list=new ArrayList<>();
        RecyclerView recyclerView;
        RecyclerViewCardViewAdapter recycleExpert_adapter;
      //  private GoogleApiClient client;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            recyclerView = (RecyclerView) findViewById(R.id.recyclerView1);
            RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
            recyclerView.setLayoutManager(mLayoutManager);
            recyclerView.setItemAnimator(new DefaultItemAnimator());
            recyclerView.setHasFixedSize(true);

          //  list= new ArrayList<user>();
            new AsynDemo().execute();

          //  setSupportActionBar(toolbar);
          //  client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
        }
        public class AsynDemo extends AsyncTask<String, Integer, String> {
          //  AlertDialog alertdialog;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                //  alertdialog.new SpotsDialog(MainActivity.this, "Please Wait", R.style.Custom);
                //  alertdialog.show();
            }

            @Override
            protected String doInBackground(String... params) {
                String response = "";
                URL url = null;
                try {
                    url = new URL("http://127.0.0.1:8080/app/con_get_data.php");
                    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                    httpURLConnection.setConnectTimeout(30000);
                    httpURLConnection.connect();
                    InputStream in = httpURLConnection.getInputStream();
                    // read response
                    response = readStream(in);
                    httpURLConnection.disconnect();
                    JSONObject jsonObject = new JSONObject(response);
                    JSONArray jsonArray = jsonObject.getJSONArray("result");
                    int count = jsonArray.length();
                    for (int i = 0; i < count; i++) {
                        JSONObject jsonObject2 = jsonArray.getJSONObject(i);
                        String name = jsonObject2.getString("name");
                        String email = jsonObject2.getString("email");

                        list.add(new user(name, email));
                    }

                } catch (IOException e) {
                    e.printStackTrace();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                return null;
            }
            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                try {
                    recycleExpert_adapter = new RecyclerViewCardViewAdapter(list,MainActivity.this);
                    recyclerView.setAdapter(recycleExpert_adapter);
                    recycleExpert_adapter.notifyDataSetChanged();

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

                }
            }

            private String readStream(InputStream is) {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
                String line = "\n";
                String result = "";
                try {
                    while ((line = bufferedReader.readLine()) != null) {
                        result += line;
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return result;
            }
        }
    }

这是适配器类

public class RecyclerViewCardViewAdapter extends RecyclerView.Adapter<RecyclerViewCardViewAdapter.ViewHolder> {

    Context context;

    List<user> item;

    public RecyclerViewCardViewAdapter(List<user> getDataAdapter, Context context){

        super();

        this.item = getDataAdapter;

        this.context = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false);

        ViewHolder viewHolder = new ViewHolder(view);

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        user getDataAdapter1 =  item.get(position);

        holder.Name.setText(getDataAdapter1.getName());
        holder.Email.setText(getDataAdapter1.getEmail());

    }

    @Override
    public int getItemCount() {

        return item.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder{

        public TextView Name,Email;


        public ViewHolder(View itemView) {

            super(itemView);

            Name = (TextView) itemView.findViewById(R.id.Name) ;
            Email = (TextView) itemView.findViewById(R.id.email) ;


        }
    }
}

【问题讨论】:

  • 可能是某个地方抛出了一些异常,你应该首先尝试使用 Log.e("MainActivity - RecyclerView", "", e);而不是 e.printStacktrace() 来查看异常。看到之后,解决你的问题会更直接。
  • 不要滥用文本属性。您的问题没有什么特别之处可以证明其整个文本 boldfaced...
  • 我得到了 Emulator 的答案。 url = new URL("127.0.0.1:8080/app/con_get_data.php"); 改为 url = new URL("10.0.2.2:8080/app/con_get_data.php");

标签: android json android-recyclerview


【解决方案1】:

我得到了模拟器的答案。

 url = new URL("http://127.0.0.1:8080/app/con_get_data.php");

改成

url = new URL("http://10.0.2.2:8080/app/con_get_data.php");

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多