zoukankan      html  css  js  c++  java
  • Android再学习-便签开发小结-20141119

    这几天的便签开发,首先遇到的问题就是数据库操作问题。现在已经可以读写数据库了,并能将数据放在正确的位置显示。
    专门建立了一个数据库操作的包,命名为“...database”。新建一个类继承自SQLiteOpenHelper,有一个参数类型为Context的构造方法,只有一行语句来生成对象:

    super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
    

    重写了两个方法,一个是 onCreate(SQLiteDatabase db) ,执行数据库的创建语句:

    db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
    				+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + TIME + " INTEGER, "
    				+ DETAIL + " TEXT NOT NULL);");
    

    另外一个是 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) ,升级数据库,两行语句:

    db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
    onCreate(db); 
    

    到此为止,数据库创建的类完成。

    然后是数据绑定到listview,这一部分在MainActivity中完成。
    getNotes()方法从数据库中获取数据集:

    return managedQuery(CONTENT_URI, FROM, null, null, ORDER_BY);
    

    showNotes(Cursor cursor)方法进行数据绑定:

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    				R.layout.item, cursor, FROM, TO);
    		setListAdapter(adapter);
    

    打开一条便签后应该是要将相关的数据显示在新打开的NotesDetailActivity中的,也就是要实现在两个Activity中进行数据传递。我能想到的办法就是将在List中被点击的这条便签的数据保存下来,传递到新的NotesDetailActivity中。
    给ListView中的Item添加点击事件的方法是:

    onListItemClick(ListView l, View v, int position, long id)。
    

    这个方法有四个参数,官方文档解释如下:

    l The ListView where the click happened
    v The view that was clicked within the ListView
    position The position of the view in the list
    id The row id of the item that was clicked

    首先想到的是“怎么从这个被点击的Item取到数据库中的相应数据”,以此入手开始学习解决这个问题。
    首先是获取被点击的Item:

    View view = l.getChildAt(position);
    

    第二步是从中取出绑定的数据:

    TextView textView = (TextView) view.findViewById(R.id.detail);
    			detail = textView.getText().toString();
    

    第三步是通过Intent将数据传递给另外一个Activity:
    这一步分为两小步,可以理解为一是发送消息:

    intent.putExtra("detail", detail);
    

    二是接收消息(在另一个Activity中):

    Intent intent = this.getIntent();
    String detail = intent.getStringExtra("detail");
    

    这里就是利用了Intent传递数据的机制。

  • 相关阅读:
    查询程序,统计文件每个单词出现几次,对应的出现在哪一行
    适配器 STL
    非关联容器|hash|unordered_map/multimap,unordered_set/multiset
    函数对象
    ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer (最大生成树+LCA求节点距离)
    D. Connected Components Croc Champ 2013
    [Educational Codeforces Round 63 ] D. Beautiful Array (思维+DP)
    C. Vasily the Bear and Sequence Codeforces 336C(枚举,思维)
    Vasya and Beautiful Arrays CodeForces
    D. Happy Tree Party CodeForces 593D【树链剖分,树边权转点权】
  • 原文地址:https://www.cnblogs.com/gcy77/p/4108839.html
Copyright © 2011-2022 走看看