Android Expandable Listivew获得Uncaught Remote Exception

时间:2017-01-08 07:25:32

标签: java android listview

我正在创建一个android应用程序,其中有一个listview,在listview中有可扩展的listview。当我运行应用程序时,我在logcat中获得了未被捕获的远程异常。任何人都可以告诉我为什么会出现这个错误,我在下面的代码中做错了什么?

ListAdapter:

public class Daybook_adapter extends BaseAdapter {
Context context;
private ArrayList<Daybook> entriesdaybook;
private ArrayList<Daybooklist> daybooklists = new ArrayList<Daybooklist>();
private boolean isListScrolling;
private LayoutInflater inflater;

public Daybook_adapter(Context context, ArrayList<Daybook> entriesdaybook) {
    this.context = context;
    this.entriesdaybook = entriesdaybook;
}

@Override
public int getCount() {
    return entriesdaybook.size();
}

@Override
public Object getItem(int i) {
    return entriesdaybook.get(i);
}

@Override
public long getItemId(int position) {
    return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (inflater == null)
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.model_daybook, null);

    final TextView tv_date = (TextView) convertView.findViewById(R.id.tv_daybook_date);
    final TextView tv_cashin = (TextView) convertView.findViewById(R.id.tv_daybook_cashin);
    final TextView tv_cashout = (TextView) convertView.findViewById(R.id.tv_daybook_cashout);
    final TextView tv_totalamt = (TextView) convertView.findViewById(R.id.daybook_total_amt);
    final ImageView img_pdf = (ImageView) convertView.findViewById(R.id.img_printpdf);
    LinearLayout emptyy = (LinearLayout) convertView.findViewById(R.id.empty);
    ExpandableHeightListView daybookdetailviewlist = (ExpandableHeightListView) convertView.findViewById(R.id.detaillist_daybook);


    final Daybook m = entriesdaybook.get(position);
    String s = m.getDate();
    String[] spiliter = s.split("-");
    String year = spiliter[0];
    String month = spiliter[1];
    String date = spiliter[2];
    if (month.startsWith("01")) {
        tv_date.setText(date + "Jan" + year);
    } else if (month.startsWith("02")) {
        tv_date.setText(date + "Feb" + year);
    } else if (month.startsWith("03")) {
        tv_date.setText(date + "Mar" + year);
    } else if (month.startsWith("04")) {
        tv_date.setText(date + "Apr" + year);
    } else if (month.startsWith("05")) {
        tv_date.setText(date + "May" + year);
    } else if (month.startsWith("06")) {
        tv_date.setText(date + "Jun" + year);
    } else if (month.startsWith("07")) {
        tv_date.setText(date + "Jul" + year);
    } else if (month.startsWith("08")) {
        tv_date.setText(date + "Aug" + year);
    } else if (month.startsWith("09")) {
        tv_date.setText(date + "Sep" + year);
    } else if (month.startsWith("10")) {
        tv_date.setText(date + "Oct" + year);
    } else if (month.startsWith("11")) {
        tv_date.setText(date + "Nov" + year);
    } else if (month.startsWith("12")) {
        tv_date.setText(date + "Dec" + year);
    }
    tv_cashin.setText("\u20B9" + m.getCashin());
    tv_cashout.setText("\u20B9" + m.getCashout());
    double one = Double.parseDouble(m.getCashin());
    double two = Double.parseDouble(m.getCashout());
    double three = one + two;
    tv_totalamt.setText("\u20B9" + String.valueOf(three));
    DatabaseHandler databaseHandler = new DatabaseHandler(context);
    daybooklists = databaseHandler.getAllDaywisedaybookdetails(s);
    for (int i = 0; i < daybooklists.size(); i++) {
        try {
            Daybooklist_adapter adapter = new Daybooklist_adapter(context, daybooklists);
            if (adapter != null) {
                if (adapter.getCount() > 0) {
                    emptyy.setVisibility(View.GONE);
                    daybookdetailviewlist.setAdapter(adapter);
                    adapter.notifyDataSetChanged();

                }
            } else {
                daybookdetailviewlist.setEmptyView(emptyy);
            }
            daybookdetailviewlist.setExpanded(true);
            daybookdetailviewlist.setFastScrollEnabled(true);
            if (!isListScrolling) {
                img_pdf.setEnabled(false);
                adapter.isScrolling(true);
            } else {
                img_pdf.setEnabled(true);
                adapter.isScrolling(false);
            }

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


    img_pdf.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {

            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                    context);

            // set title
            alertDialogBuilder.setTitle(R.string.app_name);

            // set dialog message
            alertDialogBuilder
                    .setMessage("Click yes to Print Report for : " + m.getDate())
                    .setCancelable(true)
                    .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, close
                            // current activity
                            Intent pdfreport = new Intent(context, Activity_Daybookpdf.class);
                            pdfreport.putExtra("date", m.getDate());
                            context.startActivity(pdfreport);
                        }
                    })
                    .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, just close
                            // the dialog box and do nothing
                            dialog.cancel();
                        }
                    });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();
            Button nbutton = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
            nbutton.setTextColor(context.getResources().getColor(R.color.colorAccent));
            Button pbutton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
            pbutton.setBackgroundColor(context.getResources().getColor(R.color.colorAccent));
            pbutton.setPadding(0, 10, 10, 0);
            pbutton.setTextColor(Color.WHITE);
            return false;

        }
    });

    return convertView;
}

public void setTransactionList(ArrayList<Daybook> newList) {
    entriesdaybook = newList;
    notifyDataSetChanged();
}

public void isScrolling(boolean isScroll) {
    isListScrolling = isScroll;
    Log.e("scrollcheck", String.valueOf(isListScrolling));
}
}

可扩展ListAdapter:

public class Daybooklist_adapter extends BaseAdapter {
Context context;
private LayoutInflater inflater;
private ArrayList<Daybooklist> daybooklists;
DatabaseHandler databaseHandler;
boolean isListScrolling;

public Daybooklist_adapter(Context context, ArrayList<Daybooklist> daybooklists) {
    this.context = context;
    this.daybooklists = daybooklists;
}

@Override
public int getCount() {
    return daybooklists.size();
}

@Override
public Object getItem(int i) {
    return daybooklists.get(i);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertview, ViewGroup viewGroup) {
    if (inflater == null)
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertview == null)
        convertview = inflater.inflate(R.layout.model_daybook_listentry, null);
    final TextView day_name = (TextView) convertview.findViewById(R.id.tv_daybook_name);
    final TextView day_description = (TextView) convertview.findViewById(R.id.tv_daybook_description);
    final TextView day_type = (TextView) convertview.findViewById(R.id.tv_daybook_type);
    final TextView day_amount = (TextView) convertview.findViewById(R.id.tv_daybook_amount);
    final TextView day_usertype = (TextView) convertview.findViewById(R.id.tv_usertype);
    final TextView day_time = (TextView) convertview.findViewById(R.id.tv_daybook_time);
    final ImageView day_check = (ImageView) convertview.findViewById(R.id.img_doneall);
    final TextView daybook_location = (TextView) convertview.findViewById(R.id.tv_daybook_location);
    databaseHandler = new DatabaseHandler(context);
    final Daybooklist m = daybooklists.get(position);
    if (m.getUsertype() != null && !m.getUsertype().isEmpty()) {
        if (m.getUsertype().startsWith("farmer") | m.getUsertype().startsWith("singleworker") | m.getUsertype().startsWith("groupworker") | m.getUsertype().startsWith("payvehicle")) {
            if (m.getUsertype().startsWith("farmer")) {
                day_name.setText(m.getName());
                day_description.setText(m.getDescription());
                String locat = String.valueOf(databaseHandler.getfarmerlocation(m.getMobileno()));
                locat = locat.replaceAll("\\[", "").replaceAll("\\]", "");
                Log.e("farmerlocation", locat);
                daybook_location.setText(locat);
                day_type.setText(m.getType());
                if (m.getName() != null && m.getName().startsWith("no")) {
                    day_name.setText(" ");
                } else if (m.getDescription() != null && m.getDescription().startsWith("no")) {
                    day_description.setText(" ");
                }

                day_amount.setText("\u20B9" + m.getExtraamt());
                if (m.getAmountout().startsWith("0.0") | m.getAmountout().startsWith("0")) {
                    //     day_amount.setTextColor(activity.getResources().getColor(R.color.green));
                    Log.e("Amountout", m.getAmountout());
                    day_check.setVisibility(View.INVISIBLE);
                } else {
                    //    day_amount.setTextColor(activity.getResources().getColor(R.color.album_title));
                    Log.e("Amountout", m.getAmountout());
                    day_check.setVisibility(View.VISIBLE);
                }

                day_time.setText(m.getCtime());
            } else {
                day_name.setText(m.getName());
                day_description.setText(m.getDescription());
                daybook_location.setText(m.getType());
                day_type.setText(m.getType());
                if (m.getName() != null && m.getName().startsWith("no")) {
                    day_name.setText(" ");
                } else if (m.getDescription() != null && m.getDescription().startsWith("no")) {
                    day_description.setText(" ");
                }

                day_amount.setText("\u20B9" + m.getExtraamt());
                if (m.getAmountout().startsWith("0.0") | m.getAmountout().startsWith("0")) {
                    //  day_amount.setTextColor(activity.getResources().getColor(R.color.green));
                    Log.e("Amountout", m.getAmountout());
                    day_check.setVisibility(View.INVISIBLE);
                } else {
                    //  day_amount.setTextColor(activity.getResources().getColor(R.color.album_title));
                    Log.e("Amountout", m.getAmountout());
                    day_check.setVisibility(View.VISIBLE);
                }

                day_time.setText(m.getCtime());
            }


        } else if (m.getUsertype().startsWith("advancefarmer") | m.getUsertype().startsWith("workeradvance") | m.getUsertype().startsWith("kgroupadvance") | m.getUsertype().startsWith("otherexpense") | m.getUsertype().startsWith("vehicle")) {
            if (m.getUsertype().startsWith("advancefarmer")) {
                day_name.setText(m.getName());
                day_description.setText(m.getDescription());
                day_type.setText(m.getType());
                String locat = String.valueOf(databaseHandler.getfarmerlocation(m.getMobileno()));
                locat = locat.replaceAll("\\[", "").replaceAll("\\]", "");
                Log.e("farmerlocation", locat);
                daybook_location.setText(locat);
                if (m.getName() != null && m.getName().startsWith("no")) {
                    day_name.setText(" ");
                } else if (m.getDescription() != null && m.getDescription().startsWith("no")) {
                    day_description.setText(" ");
                }
                Log.e("amountout", m.getAmountout());
                day_amount.setText("\u20B9" + m.getAmountout());
                day_time.setText(m.getCtime());
            } else {
                day_name.setText(m.getName());
                day_description.setText(m.getType());
                day_type.setText(m.getType());
                daybook_location.setText(m.getDescription());
                if (m.getName() != null && m.getName().startsWith("no")) {
                    day_name.setText(" ");
                } else if (m.getDescription() != null && m.getDescription().startsWith("no")) {
                    day_description.setText(" ");
                }
                Log.e("amountout", m.getAmountout());
                day_amount.setText("\u20B9" + m.getAmountout());
                day_time.setText(m.getCtime());
            }


        } else if (m.getUsertype().startsWith("buyer")) {
            day_name.setText(m.getName());
            day_description.setText(m.getDescription());
            day_amount.setText("\u20B9" + m.getAmountin());
            day_type.setText(" ");
            day_time.setText(m.getCtime());
            daybook_location.setText(m.getType());
        }
        if (m.getUsertype().startsWith("farmer")) {
            day_usertype.setText("F");
            day_usertype.setBackgroundResource(R.drawable.textview_farmer);
        } else if (m.getUsertype().startsWith("advancefarmer")) {
            day_usertype.setText("FA");
            day_usertype.setBackgroundResource(R.drawable.textview_farmer);
        } else if (m.getUsertype().startsWith("singleworker")) {
            day_usertype.setText("W");
            day_usertype.setBackgroundResource(R.drawable.textview_worker);
        } else if (m.getUsertype().startsWith("workeradvance")) {
            day_usertype.setText("WA");
            day_usertype.setBackgroundResource(R.drawable.textview_worker);
        } else if (m.getUsertype().startsWith("groupworker")) {
            day_usertype.setText("G");
            day_usertype.setBackgroundResource(R.drawable.textview_worker);
        } else if (m.getUsertype().startsWith("kgroupadvance")) {
            day_usertype.setText("GA");
            day_usertype.setBackgroundResource(R.drawable.textview_worker);
        } else if (m.getUsertype().startsWith("otherexpense")) {
            day_usertype.setText("E");
            day_usertype.setBackgroundResource(R.drawable.textview_otherexpense);
        } else if (m.getUsertype().startsWith("vehicle")) {
            day_usertype.setText("V");
            day_usertype.setBackgroundResource(R.drawable.textview_vehicle);
        } else if (m.getUsertype().startsWith("gsalary")) {
            day_usertype.setText("GS");
            day_usertype.setBackgroundResource(R.drawable.textview_worker);
        } else if (m.getUsertype().startsWith("isalary")) {
            day_usertype.setText("WS");
            day_usertype.setBackgroundResource(R.drawable.textview_worker);
        } else if (m.getUsertype().startsWith("payvehicle")) {
            day_usertype.setText("VP");
            day_usertype.setBackgroundResource(R.drawable.textview_vehicle);
        } else if (m.getUsertype().startsWith("buyer")) {
            day_usertype.setText("B");
            day_usertype.setBackgroundResource(R.drawable.textview_buyer);
        }
    }


    return convertview;
}

public void isScrolling(boolean isScroll) {
    isListScrolling = isScroll;
    Log.e("Innerscrollcheck", String.valueOf(isListScrolling));
}

}

例外:

  

未捕获的远程异常! (例外情况尚未得到支持   流程。)                                           java.lang.ArrayIndexOutOfBoundsException:length = 5;指数= 5                                               在com.android.internal.os.BatteryStatsImpl.updateAllPhoneStateLocked(BatteryStatsImpl.java:3321)                                               在com.android.internal.os.BatteryStatsImpl.notePhoneSignalStrengthLocked(BatteryStatsImpl.java:3351)                                               在com.android.server.am.BatteryStatsService.notePhoneSignalStrength(BatteryStatsService.java:395)                                               在com.android.server.TelephonyRegistry.broadcastSignalStrengthChanged(TelephonyRegistry.java:1448)                                               在com.android.server.TelephonyRegistry.notifySignalStrengthForSubscriber(TelephonyRegistry.java:869)                                               在com.android.internal.telephony.ITelephonyRegistry $ Stub.onTransact(ITelephonyRegistry.java:184)                                               在android.os.Binder.execTransact(Binder.java:451)

提前致谢。

0 个答案:

没有答案