我需要创建一个全局Arraylist,其中包含我的自定义类'Book'的实例,以便在整个应用程序中使用。
所以我创建了一个包含'MyBooks'类(扩展应用程序类)的文件'MyBooks.java',其中定义了自定义类'Book'和Arraylist'Booklist'。
在主活动文件'ExampledroidActivity.java'中,我需要从服务器加载数据,创建'Book'实例并将这些实例添加到ArrayList'BookList'。
问题是似乎不能识别文件'ExampledroidActivity.java'中的Book类。
有人可以查看代码并指出我做错了什么。
两个文件的代码如下所示
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熊我, 提前谢谢,
Shobhit
答案 0 :(得分:1)
你的内心阶级可能是静态的。
此致 斯特凡
答案 1 :(得分:1)
更好的答案可能是
到目前为止,您的设计存在一些缺陷,但继续学习,Android很有趣。
此致 斯特凡