首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓系统中的ListView?

安卓系统中的ListView?
EN

Stack Overflow用户
提问于 2012-06-18 20:45:52
回答 3查看 267关注 0票数 2

我正在用android开发一个游戏应用程序。在我的应用程序中,我将级别和添加的级别作为列表视图。

现在我需要在达到关卡目标后锁定关卡。我不知道该怎么办。如何在安卓系统中锁定listview。通过使用下面的代码,我填充了列表并传递。

代码语言:javascript
复制
        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);

            }
        });
EN

回答 3

Stack Overflow用户

发布于 2012-06-18 21:00:33

在这种情况下,我基本上会有一个布尔数组(某种类型,有许多方法来实现这些类型的值),它与级别数组并行。要锁定它们,使其不被操作,您可以在操作本身( onItemClick)中检查这个布尔数组。通过这种方式,您只能在看到true时才执行操作,而不执行任何操作,或者在数组声明为false的情况下显示一个小视图,说明它们还没有走那么远。

当它们通过该级别时,您可以简单地将一个true值应用于下一级别,列表视图中该项目的操作应该会自动拾取。

如果您希望灰显尚未解锁的级别,则必须为ListView实现自定义ArrayAdapter!

票数 2
EN

Stack Overflow用户

发布于 2012-06-18 20:51:49

如果你想使用字符串作为你的级别id,那么你必须在新的级别解锁时将字符串添加到你的数组中。

或者,您可以使用带有布尔标志“未锁定”的自定义级别类以及自定义ListAdapter,以仅显示未锁定的级别。

票数 1
EN

Stack Overflow用户

发布于 2012-06-18 21:00:07

Jarkko有最好的解决方案,但如果你想保持简单,你需要将解锁的关卡存储在某个地方(共享首选项可以工作),然后在启动关卡活动之前,你需要检查关卡是否解锁。所以

代码语言:javascript
复制
if (isLevelUnlocked(level)){
    startActivity(intent);
}else{
    //Level is not unlocked yet, display a msg to the user.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11083200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档