繁体   English   中英

我如何在整个活动中传递实例变量?

[英]how can i pass my instance variable througout my entire activity?

我正在尝试制作自定义列表视图适配器。 在我的public void函数中,我尝试设置适配器..(从网络上列出列表之后

这是在我的onCreate()中:

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

我的问题是:如何在整个活动中使自定义listview适配器适配器变量可用?

这是我设置名称城市和图标并尝试设置适配器时的摘录

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

listView.setAdapter(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);
    CustomListViewAdapter adapter =
        new CustomListViewAdapter(this,R.layout.activity_main, rowItems);
    listView.setAdapter(adapter);
}

将声明移到类字段中,如下所示:

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内声明适配器将其范围(可见性)限制为该方法和在其中声明的类。

顺便说一句,您没有说为什么要“重置”适配器,但是通常,您应该只设置一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM