2012-08-10 56 views
0

名單我有下面的代碼:生成一個填充的列表

 // If CheckBox is toggled, update the planet it is tagged with. 
     checkBox.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      CheckBox cb = (CheckBox) v ; 
      Planet planet = (Planet) cb.getTag(); 
      planet.setChecked(cb.isChecked()); 
      **ArrayList<String> FavList = new ArrayList<String>(); 
      FavList.add(planet.name);** 
      } 
     });   

    public void test (View view){ 
     Intent myintent = new Intent (getApplicationContext(),  MultipleItemsList.class); 
      myintent.putExtra("name", FavList); 
      startActivity(myintent); 
    } 
} 

我想要做的就是添加了檢查行星的「FavList」,然後填充列表中單擊按鈕時。方法測試加入到一個按鈕,但我得到的錯誤FavList無法解析爲變量

回答

1

聲明和初始化Anonymous Inner Class範圍FavList

2.Declare and Initialize它在Outer Class範圍,並在內部類來使用它。

如果你是聲明和方法初始化它,使它final所以不可能有從內部類它的訪問。

+0

它似乎並沒有初始化如果我在外部類 – fasheikh 2012-08-10 10:55:22

+0

然後只是在外部類中聲明它...並初始化它在內部類 – 2012-08-10 10:56:54

+0

它現在工作謝謝:)如何保存選中的項目應用程序重新啓動後?另外,我想從列表中刪除未檢查的項目,我該在哪裏做? – fasheikh 2012-08-10 11:19:44

1

這是因爲您在本地範圍內定義了FavList。它在test方法中是未知的,因此您收到錯誤FavList無法解析爲變量。

全局定義FavList並在同一行中初始化它(FavList = new ArrayList<String>();)會解決此問題。

+0

我試圖對其進行全局定義,並且因爲上述代碼片段位於自定義適配器中而無法識別。 – fasheikh 2012-08-10 10:49:48