2013-02-23 80 views
0

我有一個列表視圖,這個設置就像猜標識遊戲,你不能繼續下一個級別,直到你完成之前的水平。我一直在尋找整夜,我發現有關禁用listview中的其他項目的例子和問題,但我找不到我可以在我的問題中使用的具體答案。現在我在問。 如何禁用listview中的其他項目?並啓用他們,如果他們之前的水平是完整的,我也試圖通過從sqlite數據庫中獲取「級別狀態」來實現這一點。如何禁用其他項目在列表視圖

這是java的代碼擴展ListActivity:

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; 
         } 
        } 
     }); 
    } 

回答

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); 
} 
}); 
相關問題