Android 扩展应用程序类中的自定义类未被识别?

Android 扩展应用程序类中的自定义类未被识别?,android,class,extends,Android,Class,Extends,我需要创建一个全局Arraylist,其中包含要在整个应用程序中使用的自定义类“Book”的实例 因此,我创建了一个文件“MyBooks.java”,其中包含“MyBooks”类(扩展应用程序类),其中定义了自定义类“Book”和Arraylist“Booklist” 在主活动文件“ExampledroidActivity.java”中,我需要从服务器加载数据,创建“Book”实例,并将这些实例添加到ArrayList“BookList”中 问题是它似乎无法识别文件“ExampledroidAc

我需要创建一个全局Arraylist,其中包含要在整个应用程序中使用的自定义类“Book”的实例

因此,我创建了一个文件“MyBooks.java”,其中包含“MyBooks”类(扩展应用程序类),其中定义了自定义类“Book”和Arraylist“Booklist”

在主活动文件“ExampledroidActivity.java”中,我需要从服务器加载数据,创建“Book”实例,并将这些实例添加到ArrayList“BookList”中

问题是它似乎无法识别文件“ExampledroidActivity.java”中的图书类

有人能看一下代码并指出我做错了什么吗

下面给出了两个文件中的代码

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>();

}
package com.dubloo.exampledroid;
导入java.util.ArrayList;
导入android.app.Application;
公共类MyBooks扩展了应用程序{
公共课堂用书{
公共国际编号;
公共字符串名称;
公共字符串作者;
公共布尔值不可用;
//建造师
公共图书(int bookNo、String bookName、String bookAuthor、boolean booksavailable){
否=书号;
名称=书名;
作者=书籍作者;
可用=可记账;
}
}
public ArrayList BookList=new ArrayList();
}
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);
        }        


}

}
package com.dubloo.exampledroid;
导入android.app.Activity;
导入android.os.Bundle;
公共类ExampleDridActivity扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyBooks someBooks=((MyBooks)getApplicationContext());
//这里我从服务器获取数据
//对于本例,生成虚拟数据

对于(int n=1;n您的内部类可以是静态的

问候,,
一个更好的答案是

  • 在另一个文件(book.java)中分隔类book
  • 使图书列表私有化并提供访问者(setter/getter)
  • 遵守java命名约定:类以大写字母开始,然后是驼峰大小写,变量以小写字母开始,然后是驼峰大小写
  • 将您的android应用程序类设置为单例
到目前为止,您的设计中存在一些缺陷,但请继续学习,Android很有趣

问候,,
Stéphane

你说的识别是什么意思?错误是什么?我们能看到堆栈跟踪或错误消息吗谢谢,这真的很简单…我浪费了2个小时的生命,我再也回不来了,在第二个文件中,我不得不导入com.dubloo.menudroid.MyBooks.Book;在stackoverflow允许甲烷储存之前几分钟,正如你所看到的,我对java和java都是新手droid…我看现在把book分类显然是更好的方法