热门标签 | 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);
    }

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

推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 标题: ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
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社区 版权所有