2016-01-25 94 views
0

我是新到Android编程从列表视图传递sqlite的数据到其他活动

我试图实现一个意向使用onItemClick听众从我的列表视图将数据传递到另一个活动,但我被困。
继我的代码:

ListviewActivity活动呈现出保存书籍BOOKTITLE列表,BOOKAUTHOR ... ...

 booklistView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      Intent intent = new Intent(getApplicationContext(), BookInfoActivity.class); 


      editTextBooktitle = (TextView) findViewById(R.id.text_book_title); 
      String book_title = editTextBooktitle.getText().toString(); 
      intent.putExtra(EXTRA_MSG1, book_title); 

      editTextBookauthor = (TextView) findViewById(R.id.text_book_author); 
      String bookauthor = editTextBookauthor.getText().toString(); 
      intent.putExtra(EXTRA_MSG2, bookauthor); 

      editTextBookdate = (TextView) findViewById(R.id.text_book_date); 
      String bookdate = editTextBookdate.getText().toString(); 
      intent.putExtra(EXTRA_MSG3, bookdate); 

      editTextBookrating = (TextView) findViewById(R.id.text_book_rating); 
      String bookrating = editTextBookrating.getText().toString(); 
      intent.putExtra(EXTRA_MSG4, bookrating); 

      editTextBookshelf = (TextView) findViewById(R.id.text_book_shelf); 
      String bookshelf = editTextBookshelf.getText().toString(); 
      intent.putExtra(EXTRA_MSG5, bookshelf); 

      startActivity(intent); 

BookInfoActivity用于获取信息 - 它就像一个存储在sql数据库中的书的详细视图,特别是在列表视图中显示的视图。

Intent intent = getIntent(); 

    String book_title = intent.getStringExtra(BookDataListActivity.EXTRA_MSG1); 
    passedbooktitle = (EditText) findViewById(R.id.passed_booktitle); 
    passedbooktitle.setText(book_title); 

    String book_author = intent.getStringExtra(BookDataListActivity.EXTRA_MSG2); 
    passedbookauthor = (EditText) findViewById(R.id.passed_bookauthor); 
    passedbookauthor.setText(book_author); 

    String book_date = intent.getStringExtra(BookDataListActivity.EXTRA_MSG3); 
    passedbookdate = (EditText) findViewById(R.id.passed_bookdate); 
    passedbookdate.setText(book_date); 

    String book_rating = intent.getStringExtra(BookDataListActivity.EXTRA_MSG4); 
    passedbookrating = (EditText) findViewById(R.id.passed_bookrating); 
    passedbookrating.setText(book_rating); 

    String book_shelf = intent.getStringExtra(BookDataListActivity.EXTRA_MSG5); 
    passedbookshelf = (EditText) findViewById(R.id.passed_bookshelf); 
    passedbookshelf.setText(book_shelf); 

当我运行应用程序时,它只将数据从第一行传递到另一个活动。任何建议,我怎么能传递数据的每一行的第二个活动

回答

1

假设你有一个在每个细胞中不同数据的不同书的布局,你应该使用viewfindViewById

booklistView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     Intent intent = new Intent(getApplicationContext(), BookInfoActivity.class); 


     editTextBooktitle = (TextView) view.findViewById(R.id.text_book_title); 
     String book_title = editTextBooktitle.getText().toString(); 
     intent.putExtra(EXTRA_MSG1, book_title); 

     editTextBookauthor = (TextView) view.findViewById(R.id.text_book_author); 
     String bookauthor = editTextBookauthor.getText().toString(); 
     intent.putExtra(EXTRA_MSG2, bookauthor); 

     editTextBookdate = (TextView) view.findViewById(R.id.text_book_date); 
     String bookdate = editTextBookdate.getText().toString(); 
     intent.putExtra(EXTRA_MSG3, bookdate); 

     editTextBookrating = (TextView) view.findViewById(R.id.text_book_rating); 
     String bookrating = editTextBookrating.getText().toString(); 
     intent.putExtra(EXTRA_MSG4, bookrating); 

     editTextBookshelf = (TextView) view.findViewById(R.id.text_book_shelf); 
     String bookshelf = editTextBookshelf.getText().toString(); 
     intent.putExtra(EXTRA_MSG5, bookshelf); 

     startActivity(intent); 
    } 
} 
+0

这是相同的书籍布局。我使用row_layout来显示列表视图中的书籍。 –

+0

真棒,它有帮助。问题解决了。感谢你们。 –

0

使用

view.findViewById 

,而不是

findViewById 

每个列表项都有findViewById(R.id.text_book_title)。所以它找到你第一个。通过使用视图您选择被点击项目的text_book_title

+0

我在那里。非常感谢。解决了这个问题。 –

相关问题