Java 我的Android Studio应用程序中出现错误

Java 我的Android Studio应用程序中出现错误,java,android,Java,Android,我试图按照本教程创建一个数据库应用程序 在我的AndroidDatabaseExample类中,代码如下所示: package com.example.database; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.

我试图按照本教程创建一个数据库应用程序

在我的AndroidDatabaseExample类中,代码如下所示:

package com.example.database;


import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;

public class AndroidDatabaseExample extends ListActivity implements OnItemClickListener {
JCGSQLiteHelper db = new JCGSQLiteHelper(this);
List list;
ArrayAdapter myAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    // drop this database if already exists
    db.onUpgrade(db.getWritableDatabase(), 1, 2);

    db.createBook(new Book("The Great Gatsby", "F. Scott Fitzgerald"));
    db.createBook(new Book("Anna Karenina", "Leo Tolstoy"));
    db.createBook(new Book("The Grapes of Wrath", "John Steinbeck"));
    db.createBook(new Book("Invisible Man", "Ralph Ellison"));
    db.createBook(new Book("Gone with the Wind", "Margaret Mitchell"));
    db.createBook(new Book("Pride and Prejudice", "Jane Austen"));
    db.createBook(new Book("Sense and Sensibility", "Jane Austen"));
    db.createBook(new Book("Mansfield Park", "Jane Austen"));
    db.createBook(new Book("The Color Purple", "Alice Walker"));
    db.createBook(new Book("The Temple of My Familiar", "Alice Walker"));
    db.createBook(new Book("The waves", "Virginia Woolf"));
    db.createBook(new Book("Mrs Dalloway", "Virginia Woolf"));
    db.createBook(new Book("War and Peace", "Leo Tolstoy"));

    // get all books
    list = db.getAllBooks();
    List listTitle = new ArrayList();

    for (int i = 0; i < list.size(); i++) {
        listTitle.add(i, list.get(i).getTitle());
    }

    myAdapter = new ArrayAdapter(this, R.layout.row_layout, R.id.listText, listTitle);
    getListView().setOnItemClickListener(this);
    setListAdapter(myAdapter);
}

@Override
public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {
    // start BookActivity with extras the book id
    Intent intent = new Intent(this, BookActivity.class);
    intent.putExtra("book", list.get(arg2).getId());
    startActivityForResult(intent, 1);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // get all books again, because something changed
    list = db.getAllBooks();

    List listTitle = new ArrayList();

    for (int i = 0; i < list.size(); i++) {
        listTitle.add(i, list.get(i).getTitle());
    }

    myAdapter = new ArrayAdapter(this, R.layout.row_layout, R.id.listText, listTitle);
    getListView().setOnItemClickListener(this);
    setListAdapter(myAdapter);
}
}

所以它应该认识到这些东西,但事实并非如此。如何解决此问题?

您错误地定义了变量

List listTitle = new ArrayList();
请把它换成正确的

List<String> listTitle = new Arraylist<>();
所以,当您尝试使用列表中的一项时,它将是BookPOJO的实例


然后您可以使用getId、getTitle和您在书本模型中定义的其他方法

请编写整个堆栈跟踪。现在还不清楚到底发生了什么。首先导入com.example.database.R。然后学习如何使用列表。将列表更改为列表如果不定义类型,则无法访问书本中的方法。如果你不知道这些,我建议你首先学习基础知识;并将其替换为List listTitle=new Arraylist;。我仍然会犯同样的错误。我还需要编辑其他内容吗?您需要将Book.class导入到活动中。如果你使用android studio,你可以使用organize importsOk。我花了大约20分钟的时间试图弄清楚我应该输入什么来导入这个。我试着输入import com.example.database.Book;但这说明它是一个未使用的导入语句。您使用的是android studio还是eclipse?现在我将项目导入到android studio,它没有给出任何错误。所以首先下载项目,然后在android studio文件->新建->导入项目。然后导入您的项目,它不应该给出任何错误。我认为你的问题是由于项目导入错误造成的。请按照以下步骤操作,如果不起作用,请告诉我
List<String> listTitle = new Arraylist<>();