这适用于Android。
首先,我想到的一个例子是:
我怎么能达到这个效果?此列表视图的项目显示子列表视图中未选中项目的数量,当您单击其中一个父列表视图的项目时,这些项目会打开。我应该为子活动使用静态类吗?或者与第一个列表视图中的行一样多的实例?有人可以给我一个例子吗?非常感谢你!
答案 0 :(得分:0)
我假设你有一个类似于任务的模型。
创建一个名为ProgressCounter的抽象类。 设置两个静态值:
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;
}
我希望这可以指出你正确的方向:)
答案 1 :(得分: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文本绑定到此方法的返回值。它似乎有效,虽然我不完全确定效率。