0

アプリケーション全体で使用するカスタムクラス「Book」のインスタンスで構成されるグローバルArraylistを作成する必要があります。

そこで、カスタムクラス「Book」とArraylist「Booklist」が定義された「MyBooks」クラス(拡張アプリケーションクラス)を含むファイル「MyBooks.java」を作成しました。

メインアクティビティファイル「ExampledroidActivity.java」で、サーバーからデータをロードし、「Book」インスタンスを作成して、これらのインスタンスをArrayList「BookList」に追加する必要があります。

問題は、ファイル'ExampledroidActivity.java'のBookクラスを認識していないように見えることです。

誰かplzがコードを見て、私が間違っていることを指摘できますか?

両方のファイルのコードを以下に示します

MyBooks.java-

package com.dubloo.exampledroid;

import java.util.ArrayList;
import android.app.Application;

public class MyBooks extends Application {

    public class Book {

        public int No;
        public String Name;
        public String Author;
        public boolean IsAvailable;

     //  constructor
        public Book(int bookNo, String bookName, String bookAuthor, boolean bookIsAvailable) {
                    No = bookNo;
                    Name = bookName;
                    Author = bookAuthor;
                    IsAvailable = bookIsAvailable;
        }
    }

    public ArrayList<Book> BookList  = new ArrayList<Book>();

}

ExampledroidActivity.java-

package com.dubloo.exampledroid;

import android.app.Activity;
import android.os.Bundle;


public class ExampledroidActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MyBooks someBooks = ((MyBooks)getApplicationContext());

//here I get data from a server 
//for this example generating dummy data

        for(int n=1; n<20; n++){
            String Name = "The Book" + n;
            String Author = "Blah " + n;
            boolean IsAvailable = true;

//declare here an instance of class Book - in this part book class is not recognized
//definately doing some thing wrong here

            someBooks.Book thisBook = new someBooks.Book(n, Name, Author, IsAvailable);

//add book to the Booklist Arraylist

            someBooks.BookList.add(thisBook);
        }        


}

}

それがnoobの質問plzが私に耐えるなら、事前に感謝します、

ショビット

4

2 に答える 2

1

内部クラスは静的である可能性があります。

よろしく、ステファン

于 2011-06-22T16:51:51.140 に答える
1

より良い答えは

  • クラスブックを別のファイル(Book.java)に分けます
  • BookList を非公開にし、アクセサー (セッター / ゲッター) を提供します
  • Java の命名規則を尊重します。クラスは大文字で始まり、キャメル ケースで始まり、変数は小文字で始まり、キャメル ケースで始まります。
  • Android アプリケーション クラスをシングルトンにします。

これまでのところ、あなたのデザインにはいくつかの欠陥がありますが、学び続けてください。Android は楽しいものです。

よろしく、ステファン

于 2011-06-22T17:00:08.757 に答える