java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

幻魂祭殇 2014-09-02 06:14:55
求助大神:
log:
08-27 11:32:36.240: E/AndroidRuntime(7670): FATAL EXCEPTION: main
08-27 11:32:36.240: E/AndroidRuntime(7670): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
08-27 11:32:36.240: E/AndroidRuntime(7670): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
08-27 11:32:36.240: E/AndroidRuntime(7670): at java.util.ArrayList.get(ArrayList.java:304)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.widget.ListView.dispatchDraw(ListView.java:3221)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13856)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.widget.AbsListView.draw(AbsListView.java:3910)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12791)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12789)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12789)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12789)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12789)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13856)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12791)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12789)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12789)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13569)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.drawChild(ViewGroup.java:3072)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2936)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.draw(View.java:13856)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.widget.FrameLayout.draw(FrameLayout.java:467)
08-27 11:32:36.240: E/AndroidRuntime(7670): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2226)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12791)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.View.getDisplayList(View.java:12835)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1249)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2480)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2340)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2142)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1139)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4879)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.Choreographer.doCallbacks(Choreographer.java:579)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.Choreographer.doFrame(Choreographer.java:548)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.os.Handler.handleCallback(Handler.java:725)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.os.Handler.dispatchMessage(Handler.java:92)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.os.Looper.loop(Looper.java:153)
08-27 11:32:36.240: E/AndroidRuntime(7670): at android.app.ActivityThread.main(ActivityThread.java:5293)
08-27 11:32:36.240: E/AndroidRuntime(7670): at java.lang.reflect.Method.invokeNative(Native Method)
08-27 11:32:36.240: E/AndroidRuntime(7670): at java.lang.reflect.Method.invoke(Method.java:511)
...全文
13966 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liganisme 2015-08-24
  • 打赏
  • 举报
回复
遇到了同样的问题,只看到异常反馈无法定位问题,楼主能重现么?在什么情况下发生?有解决了?
  • 打赏
  • 举报
回复
数组越界,最好做一个为大小为0时处理一下!
dai_jiawei 2014-10-26
  • 打赏
  • 举报
回复
引用 9 楼 yuanyiyun 的回复:
我在下拉刷新的时候也遇到过类似的问题 我的解决办法 刷新之前不要清空list 当数据已经返回后 清空list 然后将新数据add进list中 然后notifyDataSetChanged 不知道这个方法适用楼主不 不过试试总没坏处
这个方法楼主可以尝试下。
dshdxch 2014-10-22
  • 打赏
  • 举报
回复
我在下拉刷新的时候也遇到过类似的问题 我的解决办法 刷新之前不要清空list 当数据已经返回后 清空list 然后将新数据add进list中 然后notifyDataSetChanged 不知道这个方法适用楼主不 不过试试总没坏处
幻魂祭殇 2014-09-03
  • 打赏
  • 举报
回复
Handler handler1 = new Handler(){ public void handleMessage(android.os.Message msg) { String showMessage = ""; switch (msg.what) { case GETWSDLRESULT: if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) new testReqDown(0).execute(); // showMessage = "WSDL: " + GetResult; // Toast.makeText(getActivity(), GetResult, Toast.LENGTH_LONG).show(); // EnvironmentShare.showToast(Main.this, showMessage); break; case 1: rbDistribute.callOnClick(); break; case 2: rbHistory.callOnClick(); break; case 3: diSpan(); break; case 4: hiSpan(); break; default: break; } // 显示提示信息并 设置标题 // EnvironmentShare.showTitle(Main.this, showMessage, true); // GetResult = ""; }; }; /* public interface ICallback { void execute(Vector<Object> obj,int nType); } ICallback listen1 = new ICallback(){ public void execute(Vector <Object> mResult,int nType) { switch (nType) { case GETWSDLRESULT: records = mResult; handler1.sendEmptyMessage(GETWSDLRESULT); // Toast.makeText(getActivity(), GetResult, Toast.LENGTH_LONG).show(); break; default: break; } } }; */ //***************************************************************** class testReqSearch extends AsyncTask<Void, Void, Void> { int type = 0; public testReqSearch(){} public testReqSearch(int type){ this.type = type; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub super.onPostExecute(result); } @Override protected Void doInBackground(Void... params) { Dao dao = new Dao(getActivity()); List<TaskInfo> tasks = new ArrayList<TaskInfo>(); if("down".equals(dataType)){ tasks = dao.getAllArrayOnDown(type); } else if("upload".equals(dataType)){ tasks = dao.getAllArrayOnUpload(type); } array.clear(); tem.clear(); if(tasks!=null && tasks.size()>0){ obj = new Object[tasks.size()]; for(int i=0; i<tasks.size(); i++){ StringBuilder sb = new StringBuilder(); sb.append(tasks.get(i).getTaskID()).append("^").append(tasks.get(i).getType()).append("^") .append(tasks.get(i).getCreateDate()).append("^").append("").append("^") .append(tasks.get(i).getRecord()).append("^").append(tasks.get(i).getPhotoUrl()).append("^") .append(tasks.get(i).getRecordUrl()).append("^").append("").append("^") .append(tasks.get(i).getPhotoName()).append("^").append(tasks.get(i).getRecordName()).append("^") .append(tasks.get(i).getLongitude()).append("^").append(tasks.get(i).getLatitude()).append("^") .append(tasks.get(i).getUserId()).append("^").append(tasks.get(i).getCity()).append("^") .append(tasks.get(i).getArea()).append("^").append(tasks.get(i).getStreet()).append("^") .append(tasks.get(i).getAddress()).append("^").append(tasks.get(i).getStatus()).append("^") .append(tasks.get(i).getTaskNum()).append("^").append(tasks.get(i).getId()).append("^").append(tasks.get(i).getSeq()); obj[i] = sb.toString(); array.add(sb.toString()); sb = null; } if(array.size()>0) { for(int b = array.size() -1; b >= 0; b--) { tem.add(array.get(b)); } } } if(tem.size() >0) adapterRecords = new Adapter(inflater, tem); handler.sendEmptyMessage(3); if("down".equals(dataType)) handler.sendEmptyMessage(7); if("upload".equals(dataType)) handler.sendEmptyMessage(6); return null; } } class testReqDown extends AsyncTask<Void, Void, Void> { int reqType = 0; public testReqDown(int reqType){ this.reqType = reqType; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub super.onPostExecute(result); } @Override protected Void doInBackground(Void... params) { if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) { dao = new Dao(getActivity()); if(reqType == 1){ record = SearchLines.getAssignByUser(sp.getString("ID", "")); } if((record != null) && (record.size()>0)){ obj = new Object[record.size()]; for(Object obj : record){ String[] objs = CPCUtil.getPositionObj(obj.toString()); Object[] datas = new Object[20]; datas[0] = null; datas[1] = 6; datas[2] = objs[2]; datas[3] = objs[12]; datas[4] = objs[4]; datas[5] = objs[5]; datas[6] = objs[6]; datas[7] = objs[8]; datas[8] = objs[9]; datas[9] = objs[13]; datas[10] = objs[14]; datas[11] = objs[15]; datas[12] = objs[16]; datas[13] = objs[17]; // datas[20] = null; if(!"".equals(datas[5]) && !"".equals(datas[6])){ datas[14] = datas[5]+","+datas[6]+","; } else if(!"".equals(EntityConfig.obj[5]) && "".equals(datas[6])){ datas[14] = datas[5]; } else if("".equals(EntityConfig.obj[5]) && !"".equals(datas[6])){ datas[14] = datas[6]; } else { datas[14] = ""; } datas[15] = objs[0]; datas[16] = objs[11]; datas[17] = objs[10]; datas[18] = objs[18]; if(dao.getNumber() != 0) { seq = dao.getNumber(); datas[19] = seq + 1; } else datas[19] = 1; if(dao != null) // Modify by yx @ 20140719 dao == null ? dao.toRecordInsert(datas, datas[15]); } } } if(array.size()!=0) adapterRecords = new Adapter(inflater, array); // handler.sendEmptyMessage(3); new testReqSearch().execute(null,null,null); return null; } } }
幻魂祭殇 2014-09-03
  • 打赏
  • 举报
回复
public class Adapter extends BaseAdapter { LayoutInflater inflater; List<String> array; private ImageButton curDel_btn; private TextView mtv2; private float x, ux; public Adapter(LayoutInflater inf, List<String> arry) { this.inflater = inf; this.array = arry; } @Override public int getCount() { return array.size(); } @Override public Object getItem(int position) { return array.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder vh; if (convertView == null) { vh = new ViewHolder(); convertView = inflater.inflate(R.layout.adapter_listview,parent,false); vh.tv1 = (TextView) convertView.findViewById(R.id.textView1); vh.tv1.setTextColor(Color.BLACK); vh.tv2 = (TextView) convertView.findViewById(R.id.textView2); vh.tv2.setTextColor(Color.BLACK); vh.tv4 = (TextView) convertView.findViewById(R.id.textView3); vh.tv4.setTextColor(Color.BLACK); vh.tv3 = (TextView) convertView.findViewById(R.id.textView4); vh.tv3.setTextColor(Color.BLACK); //vh.del = (ImageButton) convertView.findViewById(R.id.del); convertView.setTag(vh); } vh = (ViewHolder) convertView.getTag(); convertView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { final ViewHolder holder = (ViewHolder) v.getTag(); // 当按下时处理 if (event.getAction() == MotionEvent.ACTION_DOWN) { // 设置背景为选中状态 //v.setBackgroundResource(R.drawable.mm_listitem_pressed); // 获取按下时的x轴坐标 //x = event.getX(); // 判断之前是否出现了删除按钮如果存在就隐藏 if (curDel_btn != null) { //curDel_btn.setVisibility(View.GONE); //mtv2.setVisibility(View.VISIBLE); } } else if (event.getAction() == MotionEvent.ACTION_UP) {// 松开处理 // 设置背景为未选中正常状态 //v.setBackgroundResource(R.drawable.mm_listitem_normal); // 获取松开时的x坐标 //ux = event.getX(); // 判断当前项中按钮控件不为空时 if (holder.del != null) { // 按下和松开绝对值差当大于20时显示删除按钮,否则不显示 if (Math.abs(x - ux) > 10) { //holder.del.setVisibility(View.VISIBLE); //holder.tv2.setVisibility(View.GONE); //curDel_btn = holder.del; //mtv2 = holder.tv2; } else { if(array.size()>0) { Intent intent = new Intent( getActivity(), AddRecord.class); intent.putExtra("ids", array.get(position)); intent.putExtra("ind", position); Toast.makeText(getActivity(), ""+position,Toast.LENGTH_LONG).show(); Log.d("Array", array.get(position)); Log.d("Position", ""+position); intent.putExtra("record_type", "update"); //startActivityForResult(intent, OTHER); //getActivity().overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right); //getActivity().overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right); //getActivity().finish(); } } } } else if (event.getAction() == MotionEvent.ACTION_MOVE) {// 当滑动时背景为选中状态 //v.setBackgroundResource(R.drawable.mm_listitem_pressed); } else {// 其他模式 // 设置背景为未选中正常状态 //v.setBackgroundResource(R.drawable.mm_listitem_normal); } return true; } }); // //vh.del.setOnClickListener(new OnClickListener() { // public void onClick(View v) { // if (curDel_btn != null) // curDel_btn.setVisibility(View.GONE); //// Dao dao = new Dao(getActivity()); // //LocationService ls = new LocationService(); // //ls.getNewdb(); //// if(dao.deleteId(CPCUtil.getPositionObj(array.get(position))[19]) == 1){ //// new testReqSearch().execute(); //// } // } // }); if(array.size() >= position) { // vh.tv1.setText("test"); // vh.tv2.setText("test"); // vh.tv3.setText("test"); // vh.tv4.setText("test"); if(CPCUtil.getStatu(array.get(position)).equals("2")) { // vh.tv1.setTextColor(Color.RED); // vh.tv2.setTextColor(Color.RED); vh.tv3.setTextColor(Color.RED); // vh.tv4.setTextColor(Color.RED); vh.tv1.setText(CPCUtil.getSeq(array.get(position))+") "); vh.tv4.setText(" "+ CPCUtil.getPositionObj(array.get(position))[18]); vh.tv2.setText(CPCUtil.getTime(array.get(position))); if(array.size() > 0) vh.tv3.setText("1".equals(CPCUtil.getStatu(array.get(position)))?"已上傳":"2".equals(CPCUtil.getStatu(array.get(position)))?"已下載":"3".equals(CPCUtil.getStatu(array.get(position)))?"已完成":"上傳中"); } else { vh.tv1.setText(CPCUtil.getSeq(array.get(position))+") "); vh.tv4.setText(" "+CPCUtil.getPositionObj(array.get(position))[18]); vh.tv2.setText(CPCUtil.getTime(array.get(position))); if(array.size() > 0) vh.tv3.setText("1".equals(CPCUtil.getStatu(array.get(position)))?"已上傳":"2".equals(CPCUtil.getStatu(array.get(position)))?"已下載":"3".equals(CPCUtil.getStatu(array.get(position)))?"已完成":"上傳中"); } } return convertView; } class ViewHolder { TextView tv1, tv2, tv3,tv4; ImageButton del; } } public void diSpan() { String[] mItems = {" 全部"," 已完成"," 已下載"}; ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, mItems); _Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spScreen.setAdapter(_Adapter); spScreen.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { switch(position){ //默认排序 case 0: if(timer!=null){ timer.cancel(); timer = new Timer(); } new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(0), 0); } }.start(); break; //已完成 case 1: if(timer!=null){ timer.cancel(); timer = new Timer(); } new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(1), 0); } }.start(); break; //上传中 case 2: if(timer!=null){ timer.cancel(); timer = new Timer(); } new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(4), 0); } }.start(); break; }} @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } }); } public void hiSpan() { String[] mItems = {" 全部"," 上傳中"," 已上傳"}; ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, mItems); _Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spScreen.setAdapter(_Adapter); spScreen.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { switch(position){ //默认排序 case 0: if(timer!=null){ timer.cancel(); timer = new Timer(); } new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(0), 0); } }.start(); break; //已完成 case 1: if(timer!=null){ timer.cancel(); timer = new Timer(); } new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(2), 0); } }.start(); break; //上传中 case 2: if(timer!=null){ timer.cancel(); timer = new Timer(); } new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(3), 0); } }.start(); break; }} @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } }); }
幻魂祭殇 2014-09-03
  • 打赏
  • 举报
回复
private Handler handler = new Handler() { public void handleMessage(Message msg) { switch(msg.what){ case 3: listview.requestLayout(); listview.setAdapter(adapterRecords); if(btLoading!=null){ btLoading.cancel(); } break; case 4: // loadingData(); break; case 7: dilock = true; break; case 6: hilock = true; break; } } }; public RecordFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_record, container, false); this.inflater = inflater; EventBus.getDefault().registerSticky(this, "taskupload",addrecordBus.class); sp = getActivity().getSharedPreferences("userInfo", Context.MODE_WORLD_READABLE); rbDistribute = (RadioButton) rootView.findViewById(R.id.rbdistribution); rbHistory = (RadioButton) rootView.findViewById(R.id.rbhistory); ivDeleteText = (ImageView) rootView.findViewById(R.id.ivDeleteText); etSearch = (EditText) rootView.findViewById(R.id.etSearch); Button btnSearch = (Button) rootView.findViewById(R.id.btnSearch); btnSearch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(!"".equals(etSearch.getText().toString())){ if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) records = SearchLines.getRecordsBySearch(etSearch.getText().toString()); array.clear(); if(records!=null && records.size()>0){ for(Object o : records){ array.add(o.toString()); } } handler.sendEmptyMessage(4); // new Dao(getActivity()).deleteSearch(); if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) new testReqDown(0).execute(); rbDistribute.setChecked(true); dataType = "down"; } else { Toast.makeText(getActivity(), "請輸入搜索內容!", Toast.LENGTH_SHORT).show(); } } }); ivDeleteText.setOnClickListener(new OnClickListener() { public void onClick(View v) { etSearch.setText(""); } }); etSearch.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void afterTextChanged(Editable s) { if (s.length() == 0) { ivDeleteText.setVisibility(View.GONE); } else { ivDeleteText.setVisibility(View.VISIBLE); } } }); spScreen = (Spinner) rootView.findViewById(R.id.spscreen); String[] mItems = getResources().getStringArray(R.array.screen); if(rbDistribute.isChecked()) handler1.sendEmptyMessage(3); else handler1.sendEmptyMessage(4); rbDistribute.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(dilock) { dilock = false; if(dtimer!=null){ dtimer.cancel(); dtimer = new Timer(); } handler1.sendEmptyMessage(3); if(/*(ma.getAccess()) &&*/ (!(sp.getString("ID","").equals("serverdown")))) { dataType = "down"; refresh(1); } } else { dataType = "down"; new Thread() { public void run() { dtimer.schedule(new MyLeaveRecordsListTask(), 0); } }.start(); } } }); rbHistory.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(hilock = true) { hilock = false; // if(ptimer!=null){ // ptimer.cancel(); // ptimer = new Timer(); // } handler1.sendEmptyMessage(4); dataType = "upload"; new Thread() { public void run() { ptimer.schedule(new MyLeaveRecordsListTask(), 0); } }.start(); } } }); // rbHistory.callOnClick(); addRecord = (ImageButton) rootView.findViewById(R.id.addrecord); addRecord.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), AddRecord.class); intent.putExtra("record_type", "add"); startActivityForResult(intent, OTHER); } }); listview = (MyListView) rootView.findViewById(R.id.lv); //listview.setEmptyView(rootView.findViewById(R.id.tvnorecord)); listview.setonRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { new AsyncTask<Void, Void, Void>() { protected Void doInBackground(Void... params) { try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } // ma.setUpdate(true); // lv.refreshDrawableState(); // Modify by yx @20140719 // handler.sendEmptyMessage(4); // Modify by yx @20140720 // 修改,当选择 已经提交 ,后,只重新加载本地数据库,不从 WebService 拿上传的记录数据,也没这样的接口同步上传的记录数据 // 这样修改 增加刷新速度,减少与 WebService 通讯次数 if ("upload".equals(dataType)) { if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) new testReqDown(0).execute(); } else { if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) new testReqDown(1).execute(); } if(rbDistribute.isChecked()) refresh(1); return null; } @Override protected void onPostExecute(Void result) { listview.onRefreshComplete(); } }.execute(null, null, null); } }); inflater = getActivity().getLayoutInflater(); new Thread() { public void run() { timer.schedule(new MyLeaveRecordsListTask(), 1000); } }.start(); // new Thread() { // public void run() { // utime.schedule(new detectUp(), 1000,4000); // } // }.start(); // return rootView; } public void taskupload(addrecordBus event) { //上传后自动刷新 // if(event.getT()) // afterUpload(); } public void afterUpload() { rbHistory.setChecked(true); rbHistory.callOnClick(); } @Override public void onDestroyView() { if(timer!=null){ timer.cancel(); } if(ptimer != null) ptimer.cancel(); if(dtimer != null) dtimer.cancel(); // btLoading.cancel(); super.onDestroyView(); } private class MyLeaveRecordsListTask extends TimerTask { int type=0; public MyLeaveRecordsListTask(){} public MyLeaveRecordsListTask(int type){ this.type = type; } @Override public void run() { handler.sendEmptyMessage(4); new testReqSearch(type).execute(); } } public void loadingData(){ btLoading = new Dialog(getActivity(), R.style.DialogStyle); btLoading.requestWindowFeature(Window.FEATURE_NO_TITLE); btLoading.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); btLoading.setContentView(R.layout.data_loading); btLoading.setCanceledOnTouchOutside(false); btLoading.show(); } public void refresh(int typ) { if((ma.getAccess()) && (!(sp.getString("ID","").equals("serverdown")))) { switch(typ) { case 1: //down dataType = "down"; break; default: // dataType="upload"; break; } if(canFresh) { //SearchLines.getAssignByUser(sp.getString("ID", "")); new testReqDown(1).execute(); canFresh = false; } new Thread() { public void run() { try { Thread.sleep(3000); canFresh = true; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); } else new testReqSearch().execute(); }
飞奔的豆沙包 2014-09-03
  • 打赏
  • 举报
回复
这种问题如果要让别人更好的给你解决,就把关键代码发出来咯,比如用到的那个数组的代码
skgary 2014-09-02
  • 打赏
  • 举报
回复
引用 3 楼 u014651204 的回复:
请问一下, 我应该怎么处理。谢谢
看一下源代码,看看数组为什么大小为0.
幻魂祭殇 2014-09-02
  • 打赏
  • 举报
回复
请问一下, 我应该怎么处理。谢谢
FLYUP_CHEN 2014-09-02
  • 打赏
  • 举报
回复
数组越界。。。。
guwei4037 2014-09-02
  • 打赏
  • 举报
回复
很明显索引越界了啊。数组大小为0,你却取了第一行(0).

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧