热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

listview传值到另外Activity

现在做了一个ListView,里面的值是用cursor提取数据库的,现在想点击listview以后页面进行跳转,并且在新的activity里显示被点击的listview的数据,我的listview有很
现在做了一个ListView,里面的值是用cursor提取数据库的,现在想点击listview以后页面进行跳转,并且在新的activity里显示被点击的listview的数据,我的listview有很多列,所以希望数据能分开来放,现在完全没有一点头绪,查了资料也没有

DataListActivity.class
public class DataListActivity extends ActionBarActivity implements AdapterView.OnItemClickListener {
    ListView listView;
    SQLiteDatabase sqLiteDatabase;
    DBHelper dbHelper;
    Cursor cursor;
    ListDataAdapter listDataAdapter;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.data_list_layout);

        listView = (ListView) findViewById(R.id.list_view);

        listDataAdapter = new ListDataAdapter(getApplicationContext(),R.layout.reporter_my_request);

        listView.setAdapter(listDataAdapter);
        listView.setOnItemClickListener(this);

        dbHelper = new DBHelper(getApplicationContext());
        sqLiteDatabase = dbHelper.getReadableDatabase();
        cursor = dbHelper.getInformation(sqLiteDatabase);
        if(cursor.moveToFirst())
        {
            do {
                String id,name,title,department,category;
                id = cursor.getString(0);
                name = cursor.getString(1);
                title= cursor.getString(2);
                department=cursor.getString(3);
                category=cursor.getString(4);
     //           description=cursor.getString(4);

                DataProvider dataProvider=new DataProvider(id,name,title,department,category);

                listDataAdapter.add(dataProvider);




            }while (cursor.moveToNext());

            }
        dbHelper.close();

        }

    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {





        Object o =parent.getItemAtPosition(position);
        Toast.makeText(this,"",Toast.LENGTH_LONG).show();

        Intent intent = new Intent(DataListActivity.this,RequestListInfo.class);




        startActivity(intent);




    }
}

ListDataAdapter.class
public class ListDataAdapter extends ArrayAdapter {
    List list = new ArrayList();
    public ListDataAdapter(Context context, int resource) {
        super(context, resource);

    }


    static class LayoutHandler
    {
        TextView ID,NAME,TITLE,DEPARTMENT,CATEGORY,DESCRIPTION;
    }

    @Override
    public void add(Object object) {
        super.add(object);
        list.add(object);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View row = convertView;
        LayoutHandler layoutHandler;
        if(row == null)
        {
            LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.reporter_my_request,parent,false);
            layoutHandler = new LayoutHandler();
            layoutHandler.ID   = (TextView) row.findViewById(R.id.text_id);
            layoutHandler.NAME = (TextView)row.findViewById(R.id.text_name);
            layoutHandler.TITLE = (TextView)row.findViewById(R.id.text_title);
            layoutHandler.DEPARTMENT = (TextView)row.findViewById(R.id.text_department);
            layoutHandler.CATEGORY = (TextView)row.findViewById(R.id.text_category);

            row.setTag(layoutHandler);

        }
        else
        {
            layoutHandler = (LayoutHandler)row.getTag();
        }
        DataProvider dataProvider = (DataProvider)this.getItem(position);
        layoutHandler.ID.setText(dataProvider.getId());
        layoutHandler.NAME.setText(dataProvider.getName());
        layoutHandler.TITLE.setText(dataProvider.getTitle());
        layoutHandler.DEPARTMENT.setText(dataProvider.getDepartment());
        layoutHandler.CATEGORY.setText(dataProvider.getCategory());
  //      layoutHandler.DESCRIPTION.setText(dataProvider.getDescription());

        return row;
    }
}

DataProvider.class
public class DataProvider {

    private String id;




    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    private String name;
    private String title;
    private String department;
    private String category;
 //   private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }



    public DataProvider(String id,String name,String title,String department,String category){
        this.id  = id;
        this.name= name;
        this.title = title;
        this.department= department;
        this.category= category;
  //      this.description = description;


    }
}

11 个解决方案

#1


可以考虑映射吗,传输的参数只作为映射key

#2


引用 1 楼 MyLoveGame 的回复:
可以考虑映射吗,传输的参数只作为映射key

求详细解释

#3


不明白你说的不能实现的地方是什么?

#4


你是不是想传递所点击的对象到另外activity中,类似查看详情功能一样?如果是这样可以考虑EventBus解决

#5


引用 3 楼 xiaoshan23 的回复:
不明白你说的不能实现的地方是什么?

我想提取用户点击的listview中的值,也就是通过数据库读取的值

#6


用Intent 把id传过去,然后通过id把数据查出来呢?

#7


先想办法提取值,然后通过Intent 传过去啊,这样不行吗?

#8


引用 7 楼 zuoan2008 的回复:
先想办法提取值,然后通过Intent 传过去啊,这样不行吗?

我就是这个思路呀,就不知道该怎么提取值= =

#9


引用 6 楼 liudashao0 的回复:
用Intent 把id传过去,然后通过id把数据查出来呢?

怎么提取值呀,我看到网上都是用hash map可我不是用这个的,该用什么方法呢

#10


引用 9 楼 gringoirejyc 的回复:
Quote: 引用 6 楼 liudashao0 的回复:

用Intent 把id传过去,然后通过id把数据查出来呢?

怎么提取值呀,我看到网上都是用hash map可我不是用这个的,该用什么方法呢

主类继承ListActivity,用onListItemClick方法!试一试!!!

#11


解决啦~ 附上代码
public void onItemClick(AdapterView parent, View view, int position, long id) {

        cursor.moveToPosition(position);
        String rid = cursor.getString(0);
        String rname = cursor.getString(1);
        String rtitle = cursor.getString(2);
        String rdepartment = cursor.getString(3);
        String rcategory = cursor.getString(4);
        Toast.makeText(this,rid,Toast.LENGTH_LONG).show();

        Intent intent = new Intent(DataListActivity.this,RequestListInfo.class);
        intent.putExtra("id",rid);
        intent.putExtra("name",rname);
        intent.putExtra("title",rtitle);
        intent.putExtra("department",rdepartment);
        intent.putExtra("category",rcategory);

        startActivity(intent);
    }

原来是我想的太复杂了- -

推荐阅读
  • 本文详细介绍了Android平台上的动态加载技术,包括其定义、分类及具体实现步骤。通过动态加载技术,开发者可以在不更新应用的情况下,向用户推送新的功能或修复bug,从而提升用户体验。 ... [详细]
  • 本文将详细介绍如何使用ViewPager实现多页面滑动切换,并探讨如何去掉其默认的左右切换动画效果。ViewPager是Android开发中常用的组件之一,用于实现屏幕间的内容切换。 ... [详细]
  • 如何在UIWebView中加载本地图片
    本文详细介绍了如何在UIWebView中加载本地图片的方法,这对于需要在应用内展示静态页面和富文本内容的场景非常有用。 ... [详细]
  • 本文详细介绍了 Android 开发中显式 Intent 和隐式 Intent 的区别及应用场景,包括如何通过显式 Intent 在同一应用内切换 Activity,以及如何利用隐式 Intent 实现跨应用的功能调用。 ... [详细]
  • 学习目的:1.了解android线程的使用2.了解主线程与子线程区别3.解析异步处理机制主线程与子线程:所谓主线程,在Windows窗体应用程序中一般指UI线程,这个是程序启动的时 ... [详细]
  • 前端进阶:深入解析uni-app页面配置
    本文详细探讨了uni-app框架中的页面配置方法,包括启动页设置、全局样式调整以及底部导航栏的设计等关键点。 ... [详细]
  • 本文探讨了如何在Django中创建一个能够根据需求选择不同模板的包含标签。通过自定义逻辑,开发者可以在多个模板选项中灵活切换,以适应不同的显示需求。 ... [详细]
  • Iris 开发环境配置指南 (最新 Go & IntelliJ IDEA & Iris V12)
    本指南详细介绍了如何在最新的 Go 语言环境及 IntelliJ IDEA 中配置 Iris V12 框架,适合初学者和有经验的开发者。文章提供了详细的步骤说明和示例代码,帮助读者快速搭建开发环境。 ... [详细]
  • Android实战:使用ProgressBar与AsyncTask实现数据异步加载
    本文介绍如何利用ProgressBar和AsyncTask在Android应用中实现数据的异步加载。包括加载数据的不同状态下的UI展示,如加载中、加载成功及加载失败时的界面处理。 ... [详细]
  • 在上一期文章中,我们探讨了FastDev4Android项目中PullToRefreshListView组件的使用方法。本期将继续探讨该框架中的另一个重要组件——ACache数据缓存器,详细介绍其工作原理及如何在项目中有效利用。 ... [详细]
  • 本文介绍如何使用 Google 开发的 libphonenumber 库在 Java 应用中实现电话号码的有效性验证。该库不仅支持多种国际电话号码的格式化与解析,还提供了一系列强大的验证工具。 ... [详细]
  • 如何在onCreate方法中正确获取视图的尺寸
    在Android开发中,有时需要在onCreate方法中立即获取视图的宽度和高度。然而,直接使用view.getWidth()或view.getHeight()可能会返回0,这是因为布局测量过程尚未完成。本文将介绍几种有效的方法来解决这一问题。 ... [详细]
  • 在上一章【第三十九章:基于SpringBoot&Quartz完成定时任务分布式单节点持久化】中我们已经完成了任务的持久化,当我们创建一个任务时任务会被quartz定时任务框架自动持 ... [详细]
  • 本文探讨了在Android应用程序开发过程中动态管理Fragment的方法,包括动态添加和切换Fragment,以及如何实现平滑的过渡动画。文章通过一个具体的案例——订单管理系统,详细介绍了实现步骤和技术细节。 ... [详细]
  • 在现代前端开发中,组件化是提高代码复用性和维护性的关键。本文将通过一个具体的例子,展示如何使用Taro框架来封装一个音乐视频列表组件,重点介绍如何利用弹性布局(Flexbox)实现响应式设计。 ... [详细]
author-avatar
草业学院16级草坪1班团支部s_b9w
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有