让GetId()处理LinkedList()

时间:2015-07-01 06:49:36

标签: android sqlite linked-list

继我的问题"从LinkedList()元素中提取多个数据项"现在可以在演示和#34; Book" app感谢quocnhat7,现在我被卡在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);
    }
}

1 个答案:

答案 0 :(得分:0)

你有两个问题:

  1. list被定义为非通用List,因此它的get方法返回一个对象,而不是Book和{{ 1}}没有方法Object

  2. getId隐藏了成员List<Book> list = db.getAllBooks();,因此没有对成员List list进行任务。

  3. 要修复它,你应该做两件事:

    1. 更改list定义:

      list
    2. 分配给成员,而不是局部变量:

      public class MainActivity extends ListActivity implements OnItemClickListener {
          JCGSQLiteHelper db = new JCGSQLiteHelper(this);
          List<Book> list;
          //  ^^^^^^