[英]how to disable other items in listview
我有一个列表视图,此设置类似于徽标游戏的猜想,在该游戏中您必须在完成之前的级别之前才能进入下一个级别。 我已经整夜都在搜索,我在列表视图中找到了有关禁用其他项目的示例和问题,但是找不到可以在问题中使用的具体答案。 现在我问。 如何禁用列表视图中的其他项目? 并启用它们(如果之前的级别已完成),我也试图通过从sqlite数据库获取“级别状态”来实现这一目标。
这是扩展ListActivity的jave代码:
static final String[] LEVELS = new String[] { "Level 1", "Level 2", "Level 3",
"Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_play, LEVELS));
final ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(
AdapterView<?> parent, View v, int position, long id) {
//Toast.makeText(getApplicationContext(), ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
switch(position) {
case 0:
Intent lvlOne = new Intent(".LevelOneActivity");
startActivity(lvlOne);
break;
case 1:
Intent lvlTwo = new Intent(".LevelTwoActivity");
startActivity(lvlTwo);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
default:
break;
}
}
});
}
我认为您应该使简单的课程变得容易,这将保持您的水平和应该开始的课程
public class ListItemInfo
{
String mActivityToStart;
int mLevel
}
然后只需将TAG添加到创建视图时要保存在适配器中的每个列表项中
之后
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(
AdapterView<?> parent, View v, int position, long id)
{
if (#DB GET UNLOCKED LVL) >= ((ListItemInfo)v.getTag()).mActivityToStart)
{
Intent lvlOne = new Intent(getContext(), ((ListItemInfo)v.getTag()).mLevel);
startActivity(lvlOne);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.