2017-11-26 10 views
-1

私は、チケットを予約するために5つ、6つの異なる映画について同じ活動を呼びます。私は座席のためにボタンを使いました。私はボタンをクリックして無効にして、そのIDをSQLデータベースに保存しました。今、私は同じ映画のために別のチケットを予約するために再び来たときに、同じショーボタンを無効にしてデータベースに保存する

String[] projection= new String[]{ 
       movieEntry.COLUMN_NAME_SEAT 
     }; 
     //where clause 
     String selection=movieEntry.COLUMN_NAME_MN + " =?"+" AND "+movieEntry.COLUMN_NAME_MD +" =?" +" AND "+movieEntry.COLUMN_NAME_MT +" =?" ; 
     // int i=0; 
      String colindex=null; 
      // this query is select seatno from tablename 
     // where movie_name='movie that user selected' and movie_time='user seklected currently' 
     //and movie_date=''; 
     //it is working correctly its fetching all records 
     // i am trying to add all this fetched seatno to the seatsArraylist so that 
     //we can get it from this arrayList and disable that seats for the user for that particular movie and date and time 
     // but problem is that it is adding only one records to arraylist 
     //can you plz go through this code 
      String[] selectionArgs ={ Movietitle, Datem, Mtiming} ; 
      try{ 
       Cursor cursor = rdb.query(
         movieEntry.TABLE_NAME, 
         projection, 
         selection, 
         selectionArgs, 
         null, 
         null, 
         null 
      ); 
       if(cursor!= null) { 
        int i=0; 
        while(cursor.moveToFirst()) 
        { 
        colindex= cursor.getString(i); 
         seatsArrayList.add(colindex); 
         i++; 
        tv1.setText(seatsArrayList.get(2)); 
        } 
        tv.setText(colindex); 
       } 
      /* for(int j=0;j<=seatsArrayList.size();j++) 
       { 
        if(seatsArrayList.get(j)=="Seat4") 
        { 
         theBtn[3].setEnabled(false); 

        } 
       }*/ 
+2

「i」とは何ですか?行ごとにインクリメントしていますが、列インデックスとして使用しています...基本的なカーソルのAPIを知っていますか? – Selvin

答えて

0

あなたがあなただけの最初の部分(0番目)に移動するカーソルをしたことのようにあなたのカーソルに反復することになっていません。このようなforループとその簡単なカーソルで繰り返し処理するには:

for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { 
// all operations should be here 
} 

そして再びすることも、ループ内intが渡さcursor.getString(int)方法は、カーソルの指標ではありませんが、それは、列のインデックスです。テーブルには複数の列があります。最初の列は(0番目)、2番目の列は(1st)です。したがって、列インデックスを渡す必要があります。

関連する問題