2013-05-01 50 views
0

我想製作一個自定義列表視圖適配器。在我的公共無效的功能我想設置適配器。(後從網上如何通過我的實例變量通過我的整個活動?

這是我的onCreate()榜上無名:

rowItems = new ArrayList<RowItem>(); 
listView = (ListView) findViewById(R.id.list); 
CustomListViewAdapter adapter = new CustomListViewAdapter(this,R.layout.activity_main, rowItems); 
listView.setAdapter(adapter); 

我的問題是:如何才能讓我的提供整個我的活動????

這裏自定義列表視圖的轉接適配器變量是從當我把我的名字的城市,圖標片段,我嘗試設置我的適配器

item.setTitle(p.getString("name")); 
item.setDesc(p.getString("city")); 
item.setImageId(p.getString("icon")); 
rowItems.add(item); 

listView.setAdapter(adapter); 

b ut eclipse找不到它。我甚至試圖在沒有運氣的情況下回想公共無效函數中的實例....

有什麼建議嗎?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    new ReadWeatherJSONFeedTask().execute(); 

    rowItems = new ArrayList<RowItem>(); 
    listView = (ListView) findViewById(R.id.list); 
    CustomListViewAdapter adapter = 
     new CustomListViewAdapter(this,R.layout.activity_main, rowItems); 
    listView.setAdapter(adapter); 
} 
+0

一般來說,如果你實現一個應用程序(該類!),這將不會被銷燬,如果一個活動重新啓動,但我不知道這是否會幫助你。 – rekire 2013-05-01 21:08:53

+0

你在哪裏設置適配器?在哪個方法?你在哪裏聲明適配器?請顯示該代碼。 – Simon 2013-05-01 21:13:19

+0

@Simon,我在創建時設置它,但我不確定是否應該在設置後從網上獲取我的列表,無論是哪種方式,我都不能通知adapterchange(適配器),因爲我無法獲得實例稍後在活動中。 – Dnaso 2013-05-01 21:16:55

回答

1

移動聲明到一個類領域,如:

public class MyActivity extends Activity{ 

    CustomListViewAdapter adapter; 

    ... 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     new ReadWeatherJSONFeedTask().execute(); 

     rowItems = new ArrayList<RowItem>(); 

     listView = (ListView) findViewById(R.id.list); 

     adapter = new CustomListViewAdapter(this,R.layout.activity_main, rowItems); 

     listView.setAdapter(adapter); 

    } 


} 

類字段是在類的所有方法訪問。這完全是關於「範圍」。在onCreate中聲明適配器限制了它在其中聲明的方法和類的範圍(它是可見的)。

順便說一句,你不會說你爲什麼要「重置」你的適配器,但通常,你應該只設置一次。

+1

對不起,我是新的..謝謝工作 – Dnaso 2013-05-01 21:22:41

+0

不客氣。 – Simon 2013-05-01 21:26:36