2013-05-01 11 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