0

これはAndroid用です。

まず第一に、私が念頭に置いていることの例:

キャンプ旅行プランナーの例

どうすればこの効果を達成できますか?このリストビューのアイテムには、親リストビューのアイテムの1つをクリックすると開く、子リストビュー内のチェックされていないアイテムの数が表示されます。子アクティビティに静的クラスを使用する必要がありますか?または、最初のリストビューの行と同じ数のインスタンスですか?誰かが私に例を教えてもらえますか?よろしくお願いします!

4

2 に答える 2

0

Tasksのようなモデルがあると思います。

ProgressCounterのようなものと呼ばれる抽象クラスを作成します。2つの静的な値を設定します。

 public static int totalNumberOfTasks;
 public static int taskProgress;

次に、静的メソッドを作成し、それを繰り返し処理します。

public static void countProgress(ArrayList<Tasks> allTasks){
 ProgressCounter.totalNumberOfTasks = allTask.size();
 int taskProgress = 0;
   for(Task task : allTasks){
   if(task.isCompleted());
   taskProgress++;
 }
 ProgressCounter.taskProgress = taskProgress;
 }

これがあなたを正しい方向に向けることができることを願っています:)

于 2012-07-24T09:46:56.423 に答える
0

Slickelito、あなたの答えに感謝します、私は抽象クラスについていくつかのことを学びました、しかし結局私は私自身の解決策に出くわしました:

私は自分のカーソルアダプタとこのメソッドを作成しました-

public int getChildCount(long lvPhase) {
    String phase = Long.toString(lvPhase);
    String[] projection = { FlightBundleDatabase.ID };
    String[] selectionArgs = { Long.toString(mAircraft), phase };
    int count = 0;

    CursorLoader cursorLoader = new CursorLoader(mContext, FlightBundleProvider.CONTENT_URI_CHECKLISTS, projection, "aircraft_id = ? AND phase = ?", selectionArgs, null);
    Cursor cursor = cursorLoader.loadInBackground();
    int cCount = cursor.getCount();
    if (cursor.moveToFirst()) { 
        for (int i = 0; i < cCount; i++) {
            long currentItem = cursor.getLong(cursor.getColumnIndexOrThrow(FlightBundleDatabase.ID));
            if (mSettingsActivity.contains(phase + currentItem)) {
                count++;
                }
            cursor.moveToNext();
        }
    }
    cursor.close();
    return count;
}

次に、カウンターTextViewテキストをこのメソッドの戻り値にバインドしました。効率については完全にはわかりませんが、うまくいくようです。

于 2012-07-27T18:34:48.817 に答える