Android 扩展应用程序类中的自定义类未被识别?
我需要创建一个全局Arraylist,其中包含要在整个应用程序中使用的自定义类“Book”的实例 因此,我创建了一个文件“MyBooks.java”,其中包含“MyBooks”类(扩展应用程序类),其中定义了自定义类“Book”和Arraylist“Booklist” 在主活动文件“ExampledroidActivity.java”中,我需要从服务器加载数据,创建“Book”实例,并将这些实例添加到ArrayList“BookList”中 问题是它似乎无法识别文件“ExampledroidActivity.java”中的图书类 有人能看一下代码并指出我做错了什么吗 下面给出了两个文件中的代码 MyBooks.java-Android 扩展应用程序类中的自定义类未被识别?,android,class,extends,Android,Class,Extends,我需要创建一个全局Arraylist,其中包含要在整个应用程序中使用的自定义类“Book”的实例 因此,我创建了一个文件“MyBooks.java”,其中包含“MyBooks”类(扩展应用程序类),其中定义了自定义类“Book”和Arraylist“Booklist” 在主活动文件“ExampledroidActivity.java”中,我需要从服务器加载数据,创建“Book”实例,并将这些实例添加到ArrayList“BookList”中 问题是它似乎无法识别文件“ExampledroidAc
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分类显然是更好的方法