在AlertDialog

时间:2016-03-19 05:28:11

标签: android android-studio android-volley android-alertdialog android-recyclerview

我正在使用recyclerview创建一个alertdialog.But创建时,recyclerview的适配器没有附加。所以在日志中显示skipping layout因为没有附加适配器请帮助我。我正在创建这个警告对话框在recyclerview中点击另一个cardview时.. 我的代码

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.DataObjectHolder> {
    private static String LOG_TAG = "MyRecyclerViewAdapter";
    private ArrayList<DataObject2> mDataset;

    private String headline;
    private String reporterName;
    private String date;
    String[] title=null,url=null;
    private RecyclerView.Adapter colorrecy;
    private Activity activityContext;
    Button set;

    String loginURL="http://ezybzy.com/cntrldata/ezcolors.php";
    EditText qua;
    TextView text;

    public static class DataObjectHolder extends RecyclerView.ViewHolder {
        CardView cardView;
        RecyclerView popuprecycler;
        RecyclerView.Adapter mAdapter;
        RequestQueue requestQueue;
        public DataObjectHolder(View itemView, Context activityContext, ArrayList<DataObject2> mDataset) {
            super(itemView);
            cardView = (CardView) itemView.findViewById(R.id.car);

        }


    }



    public MyRecyclerViewAdapter(Activity context, ArrayList<DataObject2> myDataset)  {
        mDataset = myDataset;
        activityContext=context;


    }

    @Override
    public DataObjectHolder onCreateViewHolder(ViewGroup parent,
                                               int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.colorcard, parent, false);

        DataObjectHolder dataObjectHolder = new DataObjectHolder(view,activityContext,mDataset);
        return dataObjectHolder;
    }

    @Override
    public void onBindViewHolder(final DataObjectHolder holder, final int position) {
        Context context=null;

        if(!(mDataset.get(position).getcolor().length()<=3&&mDataset.get(position).getcolor() == null && mDataset.get(position).getcolor().equals("#EE"))) {
            Log.e("Hello",mDataset.get(position).getcolor());
            holder.cardView.setCardBackgroundColor(Color.parseColor(mDataset.get(position).getcolor()));
            holder.cardView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final AlertDialog.Builder builder=new AlertDialog.Builder(activityContext);
                    final LayoutInflater inflater=activityContext.getLayoutInflater();
                    builder.setView(inflater.inflate(R.layout.colorpopup, null));

                    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Dialog dialog1 = (Dialog) dialog;
                            holder.popuprecycler=(RecyclerView)dialog1.findViewById(R.id.recycler);
                            LinearLayoutManager incartlayout;
                            incartlayout = new LinearLayoutManager(activityContext);
                            incartlayout.setOrientation(LinearLayoutManager.VERTICAL);
                            GridLayoutManager gridLayoutManager=new GridLayoutManager(activityContext,2);
                            gridLayoutManager.setOrientation(GridLayoutManager.VERTICAL);
                            holder.popuprecycler.setLayoutManager(incartlayout);
                            holder.requestQueue= Volley.newRequestQueue(activityContext);
                            JsonObjectRequest jor = new JsonObjectRequest(Request.Method.GET, loginURL,
                                    new Response.Listener<JSONObject>() {
                                        @Override
                                        public void onResponse(JSONObject response) {

                                            try {

                                                JSONArray ja = response.getJSONArray("hi");
                                                title = new String[ja.length()];
                                                url = new String[ja.length()];

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

                                                    JSONObject jsonObject = ja.getJSONObject(i);

                                                    // int id = Integer.parseInt(jsonObject.optString("id").toString());
                                                    url[i] = jsonObject.getString("hex_value") ;
                                                    Toast.makeText(activityContext, "" + url[i], Toast.LENGTH_SHORT).show();
//


                                                }
                                                holder.mAdapter = new PopupwindowAdapter(activityContext, getDataSet(url, title, ja.length()));
                                                holder.popuprecycler.setAdapter(holder.mAdapter);
                                                // Toast.makeText(getApplicationContext(),url[2],Toast.LENGTH_SHORT).show();
                                                //output.setText(data);
                                            } catch (JSONException e) {
                                                e.printStackTrace();
                                            }
                                        }

                                    },
                                    new Response.ErrorListener() {
                                        @Override
                                        public void onErrorResponse(VolleyError error) {
                                            Log.e("Volley", error.toString());

                                        }
                                    }
                            );
                           holder.requestQueue.add(jor);
                        }
                    });
                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                        }
                    });
                    builder.show();
                }
            });
                }
            }

            public void addItem(DataObject2 dataObj, int index) {
                mDataset.add(index, dataObj);
                notifyItemInserted(index);
            }

            public void deleteItem(int index) {
                mDataset.remove(index);
                notifyItemRemoved(index);
            }

            @Override
            public int getItemCount() {
                return mDataset.size();
            }

            public interface MyClickListener {
                public void onItemClick(int position, View v);
    }
    private ArrayList<Dataobjectforpopup> getDataSet(String[] images,String[] headlines,int size) {
        // String[] images = getResources().getStringArray(R.array.images_array);
        //String[] headlines = getResources().getStringArray(R.array.headline_array);
        ArrayList results = new ArrayList<DataObject>();
        for (int index = 0; index < size; index++) {
            Dataobjectforpopup obj = new Dataobjectforpopup();
            obj.setColo(images[index]);
            //obj.setHeadline(headlines[index]);

            results.add(index, obj);
        }
        return results;
    }

}

我使用volley Request获取recyclerview数据。enter image description here

logcat的

03-19 10:56:14.564 2407-2407/com.example.ahead.recyclerinrecycler E/RecyclerView: No adapter attached; skipping layout
03-19 10:56:14.592 2407-2407/com.example.ahead.recyclerinrecycler E/RecyclerView: No adapter attached; skipping layout

0 个答案:

没有答案