我正在用 android 开发一个游戏应用程序。在我的应用程序中,我将级别和添加的级别作为 ListView 。
现在我需要在达到关卡目标后锁定关卡。我不知道该怎么做。如何在 android 中锁定 listview
。通过使用以下内容,我正在填充列表并通过。
mainListView = (ListView) findViewById(R.id.mainListView);
// mainListView.setSelection(0);
String[] levels = new String[] { "Level-1", "Level-2", "Level-3",
"Level-4", "Level-5", "Level-6" };
ArrayList<String> levelList = new ArrayList<String>();
levelList.addAll(Arrays.asList(levels));
listAdapter = new ArrayAdapter<String>(this, R.layout.simple, levelList);
mainListView.setAdapter(listAdapter);
getlevelFromDb();
mainListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView,
int myItemInt, long mylng) {
String level = (String) (mainListView
.getItemAtPosition(myItemInt));
Intent intent = new Intent(LevelsActivity.this,
QuestionActivity.class);
intent.putExtra("level", level);
startActivity(intent);
}
});
最佳答案
在这种情况下,我基本上会有一个与级别数组平行的 bool 数组(某种类型,有很多方法可以实现这些类型的值)。要阻止它们被操作,您可以在操作本身(onItemClick)中检查这个 bool 数组。通过这种方式,您只能在看到 true 时才采取行动,什么也不做,或者提出一个小观点,说明他们还没有做到那么远,或者如果数组状态为 false 则采取其他措施。
当他们通过关卡时,您可以简单地将真值应用到下一个关卡, ListView 中的项目的操作应该会自动启动。
如果您想将尚未解锁的关卡显示为灰色,那么您必须为 ListView 实现一个自定义的 ArrayAdapter!!!
关于android - Android 中的 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083200/