android listview点击事件 求大神指导

qq_19817377 2016-02-15 05:00:14
android listview我利用adapter为其填充了数据,数据来源于sqlite数据库通过查询获取到的。
现在我想通过单击listview的每个条目,然后跳转页面让该条目的具体信息显示到另外一个activity中。


通过单击条目显示到下示activity中。
现在我可以获取每个条目的position
跪求大神指点。



package com.example.studentsystembook;

import java.util.List;

import com.example.studentsystembook.Bookdao.BorrowedBook;
import com.example.studentsystembook.dao.BorrowedDao;
import com.example.studentsystembook.lose_book_list.myadapter;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterViewFlipper;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class lose_book_list extends Activity implements OnItemClickListener {

private ListView lv;
private List<BorrowedBook> borrow_books;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.losebook_query_list);
lv = (ListView) findViewById(R.id.lv_lose_books);

SharedPreferences sp = getSharedPreferences("stunum",
Context.MODE_PRIVATE);
String stu_num = sp.getString("stu_num", "");

BorrowedDao dao = new BorrowedDao(this);
borrow_books = dao.findallbysnm(stu_num);
lv.setAdapter(new myadapter());
lv.setOnItemClickListener(this);

}

public class myadapter extends BaseAdapter {

@Override
public int getCount() {
// TODO Auto-generated method stub
return borrow_books.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
BorrowedBook book = borrow_books.get(position);
View view = View.inflate(lose_book_list.this,
R.layout.lose_book_list_item, null);

// 設置textview中的顯示文本
TextView b_num = (TextView) view.findViewById(R.id.tv_bnum_lose);
b_num.setText("书号:" + book.getB_num());

TextView tv_ISBN = (TextView) view.findViewById(R.id.tv_ISBN_lose);
tv_ISBN.setText("ISBN:" + book.getISBN());

TextView bname = (TextView) view.findViewById(R.id.bname_lose);
bname.setText("书名:" + book.getB_name());

TextView autor = (TextView) view.findViewById(R.id.autor_lose);
autor.setText("作者:" + book.getB_autor());

TextView publishment = (TextView) view
.findViewById(R.id.publishment_lose);
publishment.setText("出版社:" + book.getB_publishment());

TextView tv_brtime = (TextView) view
.findViewById(R.id.tv_brtime_lose);
tv_brtime.setText("借时:" + book.getBorrow_time());

TextView tv_ordertime = (TextView) view
.findViewById(R.id.tv_ordertime_lose);
tv_ordertime.setText("还时:" + book.getReturn_time());

return view;
}

}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (position >= 0) {
Intent intent = new Intent(this, text_view.class);
startActivity(intent);

}
}

}

...全文
241 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_33975992 2016-02-17
  • 打赏
  • 举报
回复
你可以用position获取到这个位置的对象,然后直接将对象传递就行了,然后在你另一个地方接收对象数据就行了!
_周星星 2016-02-16
  • 打赏
  • 举报
回复
实体序列化 没有 这个应该很简单啊 listview的onItemClickLister 获得当前点击的实体 然后把这个实体通过intent传递到显示详情的activity就ok了三
laymenISmouse 2016-02-16
  • 打赏
  • 举报
回复
http://blog.csdn.net/u010343650/article/details/38132823
  Intent intent = new Intent(this, MainActivity.class);  
    Bundle bundle = new Bundle();// 该类用作携带数据  
    undle.putInt("userId", userId);  
    intent.putExtras(bundle);// 附带上额外的数据  
   startActivity(intent);
qq_19817377 2016-02-15
  • 打赏
  • 举报
回复
现在我可以获得position的值,数据是来自sqlite,但是却打印不出里面的内容,均是显示 null,所以利用bundle的话,也不知道传怎样的值。请大神们帮忙给贴一些详细的代码,跪谢!
code小生 2016-02-15
  • 打赏
  • 举报
回复
利用bundle传递数据,可以是指定类型也可以是对象类型。传递过去之后,在需要显示的Activity中利用Intent接收。
laymenISmouse 2016-02-15
  • 打赏
  • 举报
回复
Intent intent = new Intent(this, text_view.class); startActivity(intent); 添加Bundle 将值传出去 Intent intent = new Intent(context, clazz); intent.putExtras(bundle); context.startActivity(intent);
baidu_33983683 2016-02-15
  • 打赏
  • 举报
回复
顶一个,新手前来学习!

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧