0

私はリストビューを持っています。この設定は、その前のレベルを終了するまで次のレベルに進むことができないロゴゲームの推測のようなものです。私はすでに一晩中検索していて、リストビューで他のアイテムを無効にすることに関する例と質問を見つけましたが、私の問題で使用できる具体的な答えを見つけることができません。今、私は尋ねています。リストビューで他のアイテムを無効にする方法は?そして、それらの前のレベルが完了した場合にそれらを有効にします。また、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;
                        }
                    }
        });
    }
4

1 に答える 1

0

自分のレベルに合った簡単なクラスと始めるべきクラスを作ればいいと思います

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);   
 }
});
于 2013-02-23T17:11:57.923 に答える