Java 错误:已请求CursorIndexOutOfBoundsException索引0,大小为0

Java 错误:已请求CursorIndexOutOfBoundsException索引0,大小为0,java,android,database,sqlite,Java,Android,Database,Sqlite,在这里,我尝试按如下方式输入详细信息,然后需要检索它 package com.example.orderform; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.co

在这里,我尝试按如下方式输入详细信息,然后需要检索它

package com.example.orderform;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.DialogInterface.OnClickListener;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class NewActivity extends Activity{

  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_new);
  }
  public void onClick(View V) {
    Cursor c1=null;

    final SQLiteDatabase db;

    db=openOrCreateDatabase("Order", MODE_PRIVATE, null);

    db.execSQL("Create Table if not exists codeo(name Varchar,Address Varchar,code int(10),password int(10),phno int(10),email Varchar,ccode int(10));");

    final String name;
    final String Address;
    final String code;
    final String ccode;
    final String password;
    final String phno;
    final String email;
    final EditText n=(EditText) findViewById(R.id.editText1);
    final EditText c2=(EditText) findViewById(R.id.editText2);
    final EditText a=(EditText) findViewById(R.id.editText3);
    final EditText em=(EditText) findViewById(R.id.editText4);
    final EditText ph=(EditText) findViewById(R.id.editText5);
    final EditText cc=(EditText) findViewById(R.id.editText6);
    final EditText pass=(EditText) findViewById(R.id.editText7);

    name=n.getText().toString();
    code=c2.getText().toString();
    Address=a.getText().toString();
    phno=ph.getText().toString();
    email=em.getText().toString();
    ccode=cc.getText().toString();
    password=pass.getText().toString();
    if(name.equalsIgnoreCase("")||code.equalsIgnoreCase("")||ccode.equalsIgnoreCase("")||password.equalsIgnoreCase("")||Address.equalsIgnoreCase("")||phno.equalsIgnoreCase("")||email.equalsIgnoreCase(""))
    {
      Toast.makeText(getApplicationContext(), "No Field Can be Left Blank", Toast.LENGTH_LONG).show();
    }
    else
    {
      if(code.equals(ccode))
      {
        try
        {

          c1=db.rawQuery("Select * from codeo where code='"+code+"'", null);
          c1.moveToFirst();

          if(c1.getCount()<=0)
          {
            try
            {
              AlertDialog.Builder alrt=new AlertDialog.Builder(NewActivity.this);
              alrt.setTitle("CONFIRMATION");
              alrt.setCancelable(false);
              alrt.setMessage("Are You Sure that no more Changes on the above details");
              alrt.setPositiveButton("YES",new OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                  // TODO Auto-generated method stub
                  try
              {
                db.execSQL("Insert into codeo values('"+name+"','"+code+"','"+ccode+"','"+Address+"','"+phno+"','"+email+"','"+password+"');");
                n.setText("");
                c2.setText("");
                pass.setText("");
                a.setText("");
                ph.setText("");
                em.setText("");
                cc.setText("");
                SharedPreferences sp= getSharedPreferences("My code",0);
                SharedPreferences.Editor e=sp.edit();
                e.putString("code1",code);
                /*e.putString("Address",Address);
                  e.putString("name",name);
                  e.putString("email", email);
                  e.putString("ccode",ccode);
                  e.putString("phno",phno);
                  e.putString("password",password);
                  e.putString("code",code);*/
                e.commit();
                Intent j=new Intent(getBaseContext(), New1Activity.class);
                startActivity(j);
              }
              catch(Exception e)
              {
                Toast.makeText(getApplicationContext(), "Exception", Toast.LENGTH_SHORT).show();
              }
                }
              });
              alrt.setNegativeButton("No", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                  // TODO Auto-generated method stub
                  dialog.cancel();
                }
              });
              AlertDialog al=   alrt.create();
              al.show();

            }
            catch(Exception er)
            {
              Toast.makeText(getApplicationContext(), "Exception in getcount", Toast.LENGTH_SHORT).show();
            }
          }
          else
          {
            Toast.makeText(getApplicationContext(), "Code taken", Toast.LENGTH_SHORT).show();
          }

        }
        catch(Exception er)
        {
          Toast.makeText(getApplicationContext(), "Exception in isfirst", Toast.LENGTH_SHORT).show();
        }
      }
      else
      {
        Toast.makeText(getApplicationContext(), "Code and Confirm Code doesn't Match", Toast.LENGTH_LONG).show();
        c2.setText("");
        cc.setText("");
      }
    }
  }
}
无法请求
索引o
如果
的大小

cursor array is 0
好像你还记得

indexes start from zero in array..
因此,当实际上
您请求0索引时,实际上
意味着您正在请求游标数组的第一个元素

这进一步意味着游标数组在索引0处至少包含一个元素

在这种情况下,
进一步导出游标数组的大小不是零

因此,当您请求游标数组时,需要添加一些条件,如果大小为0,则它应跳过该条件

参考此图

当您在此图像中请求索引0时,
将为23

但是
如果光标数组的大小为零
,则
无法请求0索引

此处
数组的大小为6

但是数组的
索引在0-5的范围内


并在将代码粘贴到此处之前格式化代码。我已经尽我的时间做了很多,但仍然很差。
cursor array is 0
indexes start from zero in array..