0

我正在使用 android-coverflow http://code.google.com/p/android-coverflow/开发一个coverflow

项目是从 WebService 加载的,所以我在一个单独的线程中加载日期,如下所示:

//(in MyActivityClass onCreate) 

coverFlow1 = (CoverFlow) findViewById(R.id.coverflow); // coverFlow1 is class member 

new Thread(new Runnable() {
            public void run() {

                MyWebServiceClass.getInstance().getCoverFlowData();

                MyActivityClass.this.runOnUiThread(
                        new Runnable() 
                        {
                            public void run() 
                            {

                                        MyActivityClass.getInstance().loadItems();
                            }
                });

            }
          }).start();

问题是在 loadItems 方法中不能使用coverFlow1(它是 null ,即使我再次加载它:coverFlow1 = (CoverFlow) findViewById(R.id.coverflow);

也许我对 runOnUiThread 的使用不好(我是 Android 开发的新手)?

4

3 回答 3

1

问题是 loadItems 方法中没有coverFlow1

只需添加coverFlow1作为方法的参数,不是吗?

MyActivityClass.getInstance().loadItems(CoverFlow flow);

你也应该把它称为MyActivityClass.this.loadItems(CoverFlow flow);

getInstance()没有理由,你真的不需要,这是不正确的。

于 2012-06-20T09:05:55.030 回答
1

当您打电话时,MyWebServiceClass.getInstance().getCoverFlowData();您试图获得不正确的静态参考。你需要这个精确的跑步活动,所以你必须添加this它。所以它应该看起来像这样MyWebServiceClass.this.getCoverFlowData();

对你的MyActivityClass.getInstance().loadItems();方法也这样做

于 2012-06-20T09:11:27.253 回答
0

Coverflow 扩展了画廊。所以你可以创建一个适配器类来加载数据。

将此适配器设置为此coverflow的适配器。

于 2012-06-20T09:18:59.420 回答