0

私はandroid-coverflow http://code.google.com/p/android-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 はギャラリーを拡張します。そのため、データをロードするアダプター クラスを作成できます。

このアダプターをこのカバーフローのアダプターとして設定します。

于 2012-06-20T09:18:59.420 に答える