Java 无法在索引2处绑定参数,因为该索引超出范围

Java 无法在索引2处绑定参数,因为该索引超出范围,java,android-studio,android-sqlite,Java,Android Studio,Android Sqlite,我正在努力解决这个问题。谁能帮我渡过难关。请让我知道我在查询语句的where子句中出错的地方。我想从所有列中读取值,然后将它们显示出来 这是我的查询代码: public class MainActivity extends AppCompatActivity { SQLiteDatabase db; SQLiteOpenHelper openHelper; Button btnlogin, btnsigup; EditText loguname, logpass; Cursor cursor;

我正在努力解决这个问题。谁能帮我渡过难关。请让我知道我在查询语句的where子句中出错的地方。我想从所有列中读取值,然后将它们显示出来

这是我的查询代码:

public class MainActivity extends AppCompatActivity {
SQLiteDatabase db;
SQLiteOpenHelper openHelper;
Button btnlogin, btnsigup;
EditText loguname, logpass;
Cursor cursor;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnlogin = (Button) findViewById(R.id.btnlogin);
    btnsigup = (Button) findViewById(R.id.btnpass);
    loguname = (EditText) findViewById(R.id.loguname);
    logpass = (EditText) findViewById(R.id.logpass);
    openHelper = new DatabaseHelper(this);
    db = openHelper.getReadableDatabase();
    btnlogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String username =loguname.getText().toString();
            String pass =logpass.getText().toString();
            cursor = db.rawQuery("SELECT *FROM " + DatabaseHelper.TABLE_NAME + " WHERE " + DatabaseHelper.COL_2 + "='?' AND " + DatabaseHelper.COL_4 + "='?' ", new String[]{username, pass});
            if (cursor != null) {
                if (cursor.getCount() > 0) {
                    Intent intent = new Intent(MainActivity.this, MapsActivity.class);
                    startActivity(intent);
                } else {
                    Toast.makeText(MainActivity.this, "Login Failed", Toast.LENGTH_SHORT).show();
                }
            }
        }
    });
    btnsigup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent1 = new Intent(MainActivity.this, SignUp.class);
            startActivity(intent1);
        }
    });
}

}

您忘记了在
中选择*FROM
和删除问号周围的单引号之间加空格:
=?
而不是
='?'

试试这个代码

String query = "SELECT * FROM " + DatabaseHelper.TABLE_NAME + " WHERE " + DatabaseHelper.COL_2 + "=? AND " + DatabaseHelper.COL_4 + "=? ";
cursor = db.rawQuery(query, new String[]{username, pass});

尝试删除问号周围的单引号:
=?
而不是
='?'
@arnabdas我做了一些更改,请立即尝试