0

私は2つの変数日とパーセントを格納するテーブルを持っています。私はそれらを特定の変数に割り当てる必要があります。データベースのヘルパークラスから、私は最後の7つのエントリを取得しています:私は構築したい等しい場合はArrayListからのチェック

//----------------Graping the last seven elements ----------------------------------// 
public ArrayList<StatsitcsHelper> GetWeaklyPrograss() { 
    SQLiteDatabase db = this.getReadableDatabase(); 

    Cursor cursor = db.rawQuery ("select * from " + TABLE_PROGGRES, null); 

    ArrayList<StatsitcsHelper> datas = new ArrayList<>(); 

    if (cursor != null) { 
     cursor.moveToFirst(); 
     for (int i = cursor.getCount() - 7 ; i < cursor.getCount(); i++) { 
      cursor.moveToPosition(i); 
      StatsitcsHelper data = new StatsitcsHelper(); 
      data.WeakleyDate= cursor.getString(cursor.getColumnIndex(COL_P_Date)); 
      data.WeakleyPercent = cursor.getInt (cursor.getColumnIndex(COL_P_Percentage)); 
      datas.add(data); 
      cursor.moveToNext(); 
     } 
     cursor.close(); 
    } 
    return datas; 
} 

を一日が土曜日の場合は、データベースから関連するパーセントに土曜日のパーセント変数で統計クラスを割り当てると言うだろうif文。同じ日曜日に行く...。統計クラス内

public void WeaklyStatstics(){ 

    int saturday = 0, 
     sunday = 0, 
     monday = 0, 
     tuesday = 0, 
     wednsday = 0, 
     thersday = 0, 
     friday = 0; 

StatsitcsHelper statsitcsHelper = new StatsitcsHelper(); 
DatabaseHelper databaseHelper = new DatabaseHelper (getActivity()); 

//---------------------TO DO----------------------------------------// 
}} 

私はどのように別のクラスに、データベースのリストから、分析の各項目をするのか分かりません。ここで

は、表の挿入です:

// ----------------Proggres Table ------------------------------------// 
public boolean insertPrograss(String Date, Integer percentage) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 

    contentValues.put (COL_P_Date, Date); 
    contentValues.put (COL_P_Percentage, percentage); 


    long result = db.insert (TABLE_PROGGRES, null, contentValues); 
    db.close(); 
    return result != -1; 
} 

方法を日付メートを使用してちょうど一日に日付を格納するスケジューラによって呼び出され、出力は月曜日になり、87

GetWeaklyPrograssメソッドを使って最後の7つの入力を取得するメソッドを書きたいと思っています。私は問題が何であるかを理解することを確認していない

public class StatsitcsHelper { 

//-------------- Weakly Progress -----------------------/ 
public String WeakleyDate; 
public int WeakleyPercent; 


} 
+0

質問は、あなたがそれを修正してくださいclear.Couldされていません。 – Krish

+0

私は、統計クラス内で利用可能な弱い棒グラフを持っています。私は日とパーセントのフィールドを持つデータベーステーブルから変数を取得しようとしています。 ifステートメントは、それがどんな日であるかを見て、グラフに割り当てる右の変数にパーセント値を代入します。 –

+0

つまり、日付があり、それを曜日の日に変更したいのですか? – Krish

答えて

0

あなたはこのロジックを試すことができ、

public void WeaklyStatstics(){ 

     int saturday = 0, 
       sunday = 0, 
       monday = 0, 
       tuesday = 0, 
       wednsday = 0, 
       thersday = 0, 
       friday = 0; 

     //StatsitcsHelper statsitcsHelper = new StatsitcsHelper(); 
     DatabaseHelper databaseHelper = new DatabaseHelper (getActivity()); 

     ArrayList<StatsitcsHelper> statsitcsHelperList = databaseHelper.GetWeaklyPrograss(); 

     for (StatsitcsHelper statsitcsHelper : statsitcsHelperList) 
     { 
      if(statsitcsHelper.WeakleyDate.equals("Monday")){ 
       monday = statsitcsHelper.WeakleyPercent; 
      }else if (statsitcsHelper.WeakleyDate.equals("Tuesday")){ 
       tuesday = statsitcsHelper.WeakleyPercent; 
      } 
      //todo and write for other days too  
     } 

     // In here you can use all valid data 


    } 
+0

ありがとう、Krish、それは機能しました。 –

0

:この

 if(statsitcsHelper.WeakleyDate.equals ("monday")){ 
     saturday = statsitcsHelper.WeakleyPercent; 
    } 

、ここのようなものがstatsitcsHelperある変数に割り当てます。サイドノートでは

check if date() is monday? java

しかし曜日を確認するために、あなたはここからいくつかのアイデアを得ることができます あなたのカーソルが表内のすべてのデータが含まれています!通常は、カーソル上で必要な結果(最後の7つの要素)を取得する方がよいでしょう。

興味深いデータまで、あなたのDBクエリを制限してください。 DB(select * from)からすべてのデータを取得する代わりに、クエリを特殊化する必要があります。 SQL式ORDER BY、ASC、DESC、LIMITを探してください。

+0

日付フィールドは、その日の文字列を格納しています。どのように私はテーブルの各行を読み取って、等しい場合と文字列をチェックして書き込み場所、sudkoコードに割り当てることができます:GetWeaklyPrograssで1つの行を持って来て、土曜日に等しい土曜日の場合は日付フィールドを参照してください土曜日の変数=その行パーセント –

+0

あなたがすでに7日間持っているコード:if(statsitcsHelper.WeakleyDate.equals( "monday")){ saturday = statsitcsHelper.WeakleyPercent; } – gpolic

+0

GetWeaklyPrograssはDatabaseHelperの内部にあり、リスト内で7行を繰り返し処理します。その作業はStatisticsクラス内にある必要があります。そこでは、各行を読み込み、その日のそれが整数変数にパーセンテージを割り当てるかどうかを確認します。 –

関連する問題