求助错在哪里?报错java.lang.ArrayIndexOutOfBoundsException:length=1;index=1

xtxt411 2014-08-17 07:00:14
public class AddCarTrackActivity extends Activity {
ParkingLotDbHelper parkingLotdbHelper;
Spinner pl_carTrack_parkingLotSel;
EditText pl_carTrack_code,pl_carTrack_remarks;
EditText pl_carTrack_gpsX1,pl_carTrack_gpsY1,pl_carTrack_gpsX2,pl_carTrack_gpsY2;
EditText pl_carTrack_gpsX3,pl_carTrack_gpsY3,pl_carTrack_gpsX4,pl_carTrack_gpsY4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addcartrack);
parkingLotdbHelper = new ParkingLotDbHelper(this, "ParkingMangement.db3", 1);
pl_carTrack_parkingLotSel = (Spinner)findViewById(R.id.pl_carTrack_parkingLotSel);
pl_carTrack_code = (EditText)findViewById(R.id.pl_carTrack_code);
pl_carTrack_remarks = (EditText)findViewById(R.id.pl_carTrack_remarks);
pl_carTrack_gpsX1 = (EditText)findViewById(R.id.pl_carTrack_gpsX1);
pl_carTrack_gpsY1 = (EditText)findViewById(R.id.pl_carTrack_gpsY1);
pl_carTrack_gpsX2 = (EditText)findViewById(R.id.pl_carTrack_gpsX2);
pl_carTrack_gpsY2 = (EditText)findViewById(R.id.pl_carTrack_gpsY2);
pl_carTrack_gpsX3 = (EditText)findViewById(R.id.pl_carTrack_gpsX3);
pl_carTrack_gpsY3 = (EditText)findViewById(R.id.pl_carTrack_gpsY3);
pl_carTrack_gpsX4 = (EditText)findViewById(R.id.pl_carTrack_gpsX4);
pl_carTrack_gpsY4 = (EditText)findViewById(R.id.pl_carTrack_gpsY4);
makeAapterList();


}

private void makeAapterList()
{
Cursor cursor;
String [] arrForAdaptor = {null};
cursor = parkingLotdbHelper.getReadableDatabase().rawQuery("select * from parkingLot", null);
int i = 0;
while (cursor.moveToNext())
{
// 将结果集中的数据存入ArrayList中
arrForAdaptor[i++] = cursor.getString(1) + "(" + cursor.getString(4) + ")";

//result.add(map);
}
//实现pl_carTrack_parkingLotSel单选功能
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice,
arrForAdaptor);
pl_carTrack_parkingLotSel.setAdapter(adapter);
}
public void submit(View source)
{

String temp_code = (pl_carTrack_parkingLotSel.getSelectedItem()).toString();
String pl_code = temp_code.substring(temp_code.indexOf('(') + 1, temp_code.indexOf(')'));
String remarks = pl_carTrack_remarks.getText().toString();
String code = pl_carTrack_code.getText().toString();
String gpsX1 = pl_carTrack_gpsX1.getText().toString();
String gpsY1 = pl_carTrack_gpsY1.getText().toString();
String gpsX2 = pl_carTrack_gpsX2.getText().toString();
String gpsY2 = pl_carTrack_gpsY2.getText().toString();
String gpsX3 = pl_carTrack_gpsX3.getText().toString();
String gpsY3 = pl_carTrack_gpsY3.getText().toString();
String gpsX4 = pl_carTrack_gpsX4.getText().toString();
String gpsY4 = pl_carTrack_gpsY4.getText().toString();
insertData(parkingLotdbHelper.getReadableDatabase(),pl_code, remarks,code,gpsX1,gpsY1,gpsX2,gpsY2,gpsX3,gpsY3,gpsX4,gpsY4);
finish();
}

private void insertData(SQLiteDatabase db,String pl_code, String remarks,String code,
String gpsX1,String gpsY1,String gpsX2,String gpsY2,String gpsX3,String gpsY3,String gpsX4,String gpsY4)
{
String sql = "insert into carTrack values(null,?,?,?,?,?,?,?,?,?,?,?)";
String[] valueList = new String[] {pl_code, remarks,code,gpsX1,gpsY1,gpsX2,gpsY2,gpsX3,gpsY3,gpsX4,gpsY4};
db.execSQL(sql,valueList);
Toast.makeText(this, "Success", 8000).show();

}
public void cancel(View source)
{

finish();

}

@Override
public void onDestroy()
{
super.onDestroy();
if (null != parkingLotdbHelper)
{
parkingLotdbHelper.close();
}


}


}
...全文
1158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhhuaw 2014-08-20
  • 打赏
  • 举报
回复
String [] arrForAdaptor = {null}; 这句你定义了一个空的字符串数组,然后又在arrForAdaptor [0]的位置赋值的时候就报数组越界了
zhhuaw 2014-08-19
  • 打赏
  • 举报
回复
String [] arrForAdaptor = {null};
lionfresh 2014-08-19
  • 打赏
  • 举报
回复
数组越界了,问题应该是出在 arrForAdaptor[i++] = cursor.getString(1) + "(" + cursor.getString(4) + ")";这句
杰哥哥啊 2014-08-19
  • 打赏
  • 举报
回复
错误的原因是你去取某个数组的第一个元素,可是这个数据是空的,所以就挂了,你要把log贴上来
哎,真难 2014-08-18
  • 打赏
  • 举报
回复
数组越界错误,你debug看看就知道了
  • 打赏
  • 举报
回复
logcat里看下哪一行数组越界了
skgary 2014-08-17
  • 打赏
  • 举报
回复
代码太长,异常的意思是数组只有一个元素,你用下标1去访问,越界了。 PS,你这样写代码,实在是太差了。建议专门一个类来封装一下数据库访问,然后写单元测试测一下。

80,351

社区成员

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

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