Android 让GetId()在LinkedList()上工作

Android 让GetId()在LinkedList()上工作,android,sqlite,linked-list,Android,Sqlite,Linked List,我的问题“从LinkedList()元素中提取多个数据项”由于quocnhat7现在可以在演示版“Book”应用程序中正常工作,现在我被困在onItemClick上,方法getId()在构建应用程序时导致“错误:找不到符号方法getId()” public class MainActivity extends ListActivity implements OnItemClickListener { JCGSQLiteHelper db = new JCGSQLiteHelper(thi

我的问题“从LinkedList()元素中提取多个数据项”由于quocnhat7现在可以在演示版“Book”应用程序中正常工作,现在我被困在onItemClick上,方法getId()在构建应用程序时导致“错误:找不到符号方法getId()”

public class MainActivity 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);

        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<Book> list = db.getAllBooks();
        List<String> listTitle = new ArrayList<String>();

        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);
    }
}
public类MainActivity扩展了ListActivity实现了ListListener{
JCGSQLiteHelper db=新的JCGSQLiteHelper(此);
名单;
阵列适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db.createBook(新书《海浪》、《弗吉尼亚·伍尔夫》);
db.createBook(新书(“达洛韦夫人”、“弗吉尼亚·伍尔夫”);
db.createBook(新书《战争与和平》、《列夫·托尔斯泰》);
//拿到所有的书
List=db.getAllBooks();
List listTitle=新建ArrayList();
对于(int i=0;i
您有两个问题:

  • list
    被定义为非泛型的
    list
    ,因此它的
    get
    方法返回一个对象,而不是
    Book
    ,并且
    Object
    没有方法
    getId

  • List List=db.getAllBooks()隐藏成员
    列表
    ,因此不向成员
    列表
    赋值

  • 要修复它,您应该做两件事:

  • 更改
    列表
    定义:

    public class MainActivity extends ListActivity implements OnItemClickListener {
        JCGSQLiteHelper db = new JCGSQLiteHelper(this);
        List<Book> list;
        //  ^^^^^^
    
  • 天才谢谢你:哦)我正盯着那个。。。我找不到灵感。
    // get all Books
    list = db.getAllBooks();