【问题标题】:write code in activity extends Fragment?在活动中编写代码扩展片段?
【发布时间】:2017-07-15 15:40:56
【问题描述】:

enter image description hereenter image description here谁能告诉我在哪里写listView的代码以便活动扩展片段可以读取它。有onCreateView,我映射listview但仍然没有读取它。 正如你所看到的,我评论的方法很少,因为它没有阅读它。请告诉我在哪里编写代码以获得输出。以下是我的代码。

public class Tab1 extends Fragment {

PendingPickupBEAN pendingPickup=new PendingPickupBEAN();
public static final List<PendingPickupBEAN> refer=new ArrayList<PendingPickupBEAN>();
ListView listview;
CustomListView customListView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /*listview= (ListView) findViewById(R.id.listTab1);
    customListView = new CustomListView(getContext(),R.layout.list_item,DashboardActivity.listBeanobj);

    Log.e(TAG,"=======CUSTOM LIST VIEW ========");
    listview.setAdapter(customListView);*/


}

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

   // final ArrayList<PendingPickupBEAN> listPending = (ArrayList<PendingPickupBEAN>) getIntent().getSerializableExtra("ARRAYLIST");

  Log.e(TAG,"Pending piclup list : listbeanobj " + DashboardActivity.listBeanobj.size());

    View view= inflater.inflate(R.layout.activity_tab1, container, false);
    return  view;


    listview=(ListView) view.findViewById(R.id.listTab1);
    customListView = new CustomListView(getContext(),R.layout.list_item,DashboardActivity.listBeanobj);

    Log.e(TAG,"=======CUSTOM LIST VIEW ========");
    listview.setAdapter(customListView);


}

public class CustomListView  extends ArrayAdapter<PendingPickupBEAN> {

   /* ArrayAdapter<PendingPickupBEAN> adapter=new ArrayAdapter<PendingPickupBEAN>
            (Tab1.this,R.layout.list_item_accepted,refer);*/

    ArrayAdapter<PendingPickupBEAN> adapter=new ArrayAdapter<PendingPickupBEAN>
            (getContext(),R.layout.list_item_accepted,refer);
    Context context;
    LayoutInflater inflater;
    List<PendingPickupBEAN> obj;

    public CustomListView(Context context, int resourceId,
                          List<PendingPickupBEAN> obj) {
        super(context,resourceId,obj);
        this.context=context;
        this.obj=obj;
        inflater=LayoutInflater.from(context);


    }

    private class ViewHolder {
        TextView txt_pickupID;
        TextView txt_address;
        Button btn_Accept;
        Button btn_Decline;


    }

    public View getView(final int position, View view, final ViewGroup parent) {
        final CustomListView.ViewHolder holder;

        if (view == null) {
            holder = new CustomListView.ViewHolder();
            view = inflater.inflate(R.layout.list_item, null);



            holder.txt_pickupID=(TextView) view.findViewById(R.id.pickupID);
            holder.txt_address = (TextView) view.findViewById(R.id.address);
            holder.btn_Accept = (Button) view.findViewById(R.id.btnAccept);
            holder.btn_Decline = (Button) view.findViewById(R.id.btnDecline);

            holder.txt_pickupID = (TextView) view.findViewById(R.id.pickupID);
            holder.txt_address = (TextView) view.findViewById(R.id.address);
            holder.btn_Accept = (Button) view.findViewById(R.id.btnAccept);
            holder.btn_Decline = (Button) view.findViewById(R.id.btnDecline);


            view.setTag(holder);
        } else {
            holder = (CustomListView.ViewHolder) view.getTag();
        }

        holder.txt_pickupID.setText(obj.get(position).getPickupID());
        holder.txt_address.setText(obj.get(position).getAddress());



        holder.btn_Accept.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                holder.btn_Decline.setText("FORWARD");
                holder.btn_Accept.setText("ACCEPTED");
                holder.btn_Accept.setBackgroundResource(R.color.colorAccept);

                pendingPickup.setPickupID(holder.txt_pickupID.getText().toString());
                Log.d(TAG, "= chk value isn't set or not====" + pendingPickup.getPickupID());
                pendingPickup.setAccept_Decline(holder.btn_Accept.getText().toString());
                Log.d(TAG, "== chk value isn't set or not===" + pendingPickup.getAccept_Decline());

                //===============
                String value = holder.txt_pickupID.getText().toString();
                String buttonText = holder.btn_Accept.getText().toString();
                Log.d(TAG, "===" + buttonText + "  " + value);
                new ExecuteTask().execute();
                //=============

                PendingPickupBEAN beanOBJ = new PendingPickupBEAN();

                beanOBJ.setPickupID(holder.txt_pickupID.getText().toString());
                beanOBJ.setAccept_Decline(holder.btn_Accept.getText().toString());
                refer.add(beanOBJ);

                //refer.add(holder.txt_pickupID.getText().toString());
                Log.d(TAG,"=======Size of refer array in same clas button====" +refer.size());

                adapter.notifyDataSetChanged();

            }
        });


        holder.btn_Decline.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                AlertDialog.Builder builder=new AlertDialog.Builder(getContext());
                builder.setTitle("Alert!!!");
                builder.setMessage("Are you Sure?");

                builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        holder.btn_Accept.setEnabled(false);
                        holder.btn_Decline.setText("DECLINED");
                        holder.btn_Decline.setBackgroundResource(R.color.colorDecline);
                        holder.btn_Decline.setClickable(true);
                      //  finish();
                    }
                });

                builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        holder.btn_Accept.setEnabled(true);
                        holder.btn_Decline.setText("DECLINE");
                                                    holder.btn_Decline.setClickable(true);
                    }
                });
                AlertDialog alertDialog=builder.create();
                alertDialog.show();

               /* value = holder.txt_pickupID.getText().toString();
                buttonText = holder.btn_Decline.getText().toString();
                Log.d(TAG, "===" + buttonText + "  " + value);*/

                pendingPickup.setPickupID(holder.txt_pickupID.getText().toString());
                Log.d(TAG, "= chk value isn't set or not====" + pendingPickup.getPickupID());
                pendingPickup.setAccept_Decline(holder.btn_Decline.getText().toString());
                Log.d(TAG, "== chk value isn't set or not===" + pendingPickup.getAccept_Decline());

                new ExecuteTask().execute();
            }

        });


        return view;

    }

}

public class ExecuteTask extends AsyncTask<Void,Void,Void> {

    int updateResponse;

    @Override
    protected Void doInBackground(Void... params) {


        String[] values = { pendingPickup.getAccept_Decline(), pendingPickup.getPickupID()};


        Log.d(TAG,"ACCEPT / DECLINE== "+ pendingPickup.getAccept_Decline());

        Log.d(TAG,"PICKUPID ===" + pendingPickup.getPickupID());


        try {
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(
                    JsonURLPath.JSONURL + "/setPickupAcceptDeclineUpdate");

            List<NameValuePair> list = new ArrayList<NameValuePair>();

            list.add(new BasicNameValuePair("accept_decline", values[0]));
            list.add(new BasicNameValuePair("pickupid", values[1]));


            httpPost.setEntity(new UrlEncodedFormEntity(list));
            HttpResponse response = httpClient.execute(httpPost);
            updateResponse = response.getStatusLine().getStatusCode();



        } catch (Exception e) {
            Log.e(TAG, " in Catch block ");
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public void onPostExecute(Void rs) {
        Log.e(TAG, "1----------post execute--");
        super.onPostExecute(rs);

    }


}

}

【问题讨论】:

  • 我做到了。但它显示空白活动。没有预期的输出。

标签: android listview android-tablayout custom-lists


【解决方案1】:

试试这个方法

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

    View view= inflater.inflate(R.layout.activity_tab1, container, false);

    final ArrayList<PendingPickupBEAN> listPending = (ArrayList<PendingPickupBEAN>)getActivity().getIntent().getSerializableExtra("ARRAYLIST");
   // Log.e(TAG,"Pending piclup list : listbeanobj " + DashboardActivity.listBeanobj.size());


    listview=(ListView) view.findViewById(R.id.listTab1);
    customListView = new CustomListView(getActivity(),R.layout.list_item,DashboardActivity.listBeanobj);

    Log.e(TAG,"=======CUSTOM LIST VIEW ========");
    listview.setAdapter(customListView);

    return  view;

}

【讨论】:

  • listBeanobj@Demo的大小是多少
  • 有 22 件商品
  • 嘿!无法在 mainfest 中声明我的相同活动。为什么?
  • 我已经发布了。我会告诉我程序的流程:有一个 DashboardActivity 通过它我打算在 tab1 活动中的 arrylist 扩展片段
  • @Demo xml 没问题。你应该正确传递arraylist
【解决方案2】:

我认为你最后调用 return 如上所述

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

   // final ArrayList<PendingPickupBEAN> listPending = (ArrayList<PendingPickupBEAN>) getIntent().getSerializableExtra("ARRAYLIST");

  Log.e(TAG,"Pending piclup list : listbeanobj " + DashboardActivity.listBeanobj.size());

    View view= inflater.inflate(R.layout.activity_tab1, container, false);


    listview=(ListView) view.findViewById(R.id.listTab1);
    customListView = new CustomListView(getContext(),R.layout.list_item,DashboardActivity.listBeanobj);

    Log.e(TAG,"=======CUSTOM LIST VIEW ========");
    listview.setAdapter(customListView);

    return  view; //here 

    }

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多