0

我正在尝试制作一个自定义列表视图适配器。在我的公共 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);

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

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

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

listView.setAdapter(adapter);

但日食找不到它。我什至试图在没有运气的情况下回忆公共 void 函数中的实例......

有什么建议么?

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

1 回答 1

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

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

于 2013-05-01T21:20:40.700 回答