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

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

推荐阅读
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 20100423:Fixes:更新批处理,以兼容WIN7。第一次系统地玩QT,于是诞生了此预备式:【QT版本4.6.0&#x ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • IneedtofocusTextCellsonebyoneviaabuttonclick.ItriedlistView.ScrollTo.我需要通过点击按钮逐个关注Tex ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 如何在Visual C#中使用ListView控件来展示数据记录
    如果要你在程序中显示数据库中的数据记录,你首先想用的显示工具肯定是DataGrid。当然用DataGrid显示数据记录是一种既常用又简单的方法。但是在程序控制方面,它却无法那么随心所欲。本文就是介绍另 ... [详细]
  • 如题在ListView每个item的布局里面都有一个webView来加载内容因为内容含有文字和图片,但是很加载很慢,求大神帮忙解决 ... [详细]
  • 这期内容当中小编将会给大家带来有关怎么在asp.net中获取ListView与gridview中当前行的行号,文章内容丰富且以专业的角度为大家分析和叙述, ... [详细]
  • 这个是listview的item布局,当在list中滚动时,每个item的高度会随机变化,导致显示混乱,多滚动几次高度又显示正常了,怎么回事呢?<?xmlversion1.0 ... [详细]
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社区 版权所有