android studio中ListView与SQLite的结合使用
Da.java
public class Db extends SQLiteOpenHelper {
public Db(Context context) {
super(context, "db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE user2(" +
"_id INT DEFAULT 0," +
"name TEXT DEFAULT \"\"," +
"sex TEXT DEFAULT \"\")");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
private SimpleCursorAdapter mAdapter;
private ListView listView;
private Button btn_add;
private Button btn_delete;
private Button btn_back;
private EditText et_id;
private EditText et_name;
private EditText et_sex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_add = (Button) findViewById(R.id.btn_add);
btn_delete = (Button) findViewById(R.id.btn_delete);
listView = (ListView) findViewById(R.id.list);
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addData();
refleshListView();
}
});
btn_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteData();
refleshListView();
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Toast.makeText(MainActivity.this,""+position,Toast.LENGTH_SHORT).show();
int positions = position + 1;
Db db = new Db(MainActivity.this);
SQLiteDatabase dbWrite = db.getWritableDatabase();
dbWrite.delete("user2","_id=?",new String[]{""+positions});
dbWrite.close();
refleshListView();
}
});
}
public void addData() {
btn_back = (Button) findViewById(R.id.btn_back);
et_id = (EditText) findViewById(R.id.et_id);
et_name = (EditText) findViewById(R.id.et_name);
et_sex = (EditText) findViewById(R.id.et_sex);
btn_add = (Button) findViewById(R.id.btn_add);
btn_delete = (Button) findViewById(R.id.btn_delete);
listView = (ListView) findViewById(R.id.list);
btn_add.setVisibility(View.GONE);
btn_delete.setVisibility(View.GONE);
listView.setVisibility(View.GONE);
btn_back.setVisibility(View.VISIBLE);
et_id.setVisibility(View.VISIBLE);
et_name.setVisibility(View.VISIBLE);
et_sex.setVisibility(View.VISIBLE);
btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn_add.setVisibility(View.VISIBLE);
btn_delete.setVisibility(View.VISIBLE);
listView.setVisibility(View.VISIBLE);
btn_back.setVisibility(View.GONE);
et_id.setVisibility(View.GONE);
et_name.setVisibility(View.GONE);
et_sex.setVisibility(View.GONE);
String id = et_id.getText().toString(),
name =et_name.getText().toString(),
sex = et_sex.getText().toString();
Db db = new Db(MainActivity.this);
SQLiteDatabase dbWrite = db.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("_id", id);
cv.put("name", name);
cv.put("sex", sex);
dbWrite.insert("user2", null, cv);
dbWrite.close();
refleshListView();
}
});
// String id = et_id.getText().toString(),
// name =et_name.getText().toString(),
// sex = et_sex.getText().toString();
//
//
// Db db = new Db(MainActivity.this);
// SQLiteDatabase dbWrite = db.getWritableDatabase();
//
// ContentValues cv = new ContentValues();
// cv.put("_id",id);
// cv.put("name", name);
// cv.put("sex", sex);
// dbWrite.insert("user2", null, cv);
//
// dbWrite.close();
}
public void deleteData() {
Db db = new Db(MainActivity.this);
SQLiteDatabase dbWrite = db.getWritableDatabase();
dbWrite.delete("user2",null,new String[]{});
dbWrite.close();
}
public void refleshListView() {
Db db = new Db(MainActivity.this);
SQLiteDatabase dbRead = db.getReadableDatabase();
Cursor c = dbRead.query("user2", null, null, null, null, null, null);
mAdapter = new SimpleCursorAdapter(MainActivity.this, R.layout.user_info, c,
new String[]{"_id","name","sex"}, new int[]{R.id._id,R.id._name,R.id._sex});
listView.setAdapter(mAdapter);
dbRead.close();
}
}
user_info.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/_id"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/_name"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/_sex"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <Button
android:id="@+id/btn_add"
android:text="Add"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_delete"
android:text="Delete"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/> <Button
android:id="@+id/btn_back"
android:text="确定"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <EditText
android:id="@+id/et_id"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="40dp" />
<EditText
android:id="@+id/et_name"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="40dp" />
<EditText
android:id="@+id/et_sex"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="40dp" />
</LinearLayout>
android studio中ListView与SQLite的结合使用的更多相关文章
- Android开发的小技巧,在Android Studio中使用Designtime Layout Attributes
在编写xml文件时,为了预览效果,经常会使用默认填上一些内容,比如TextView时,随便写上一个text <TextView ... android:text="Name:" ...
- Android ImageView 不显示JPEG图片 及 Android Studio中怎样引用图片资源
Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里须要设置成setVisibility(View.VISIB ...
- android studio 中移除module和恢复module
一.移除Android Studio中module 在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图: An ...
- Android Studio中Button等控件的Text中字符串默认大写的解决方法
初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是 ...
- .Net程序员之不学Java做安卓开发:Android Studio中的即时调试窗口
对学.Net的人来说,JAVA开发是一场噩梦. .net中的即时窗口,调试时直接在里面写代码,对程序中的各种方法/属性进行调用,很方便. Android Studio中找了好久,参考如下网址,也有类似 ...
- 如何将Eclipse中的项目迁移到Android Studio 中
如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...
- 在android studio 中使用applicationid的问题
现在我需要对项目app的某个功能做性能测试,主要测试耗电量的多少. 1.我想到的方式是,我需要在同一台手机测试,同一个应用,需要安装在手机两次,第二次安装不覆盖第一次的安装. 在android stu ...
- Android studio 中的配置编译错误总结
1.编译Andorid 工程的时候,有时候出现gradle 报下面的错误. Error:(1, 0) Cause: com/android/build/gradle/LibraryPlugin : U ...
- Android Studio中清单文件改versionCode和versionName没效果的原因
在Android Studio中,项目的versionCode 和versionName 的控制不是在AndroidManifest.xml清单文件中更改的,而是在项目的build.gradle中更改 ...
随机推荐
- stack 栈的实现
今天晚上去「南哪」听了场AI的讲座,除了话筒真心不给力之外,算是对微软这方面的进展有了更多了解,毕竟是半宣传性质的活动吧. 光听这些是没用的,眼下还是打好基础,多尝试学点新技术,拓宽能力和视野比较重要 ...
- java设计优化--代理模式
代理模式使用代理对象完成用户的请求,屏蔽用户对真实对象的访问. 代理模式的用途很多,比如因为安全原因,需要屏蔽客户端直接访问真实对象:或者在远程调用中,需要使用代理对象处理远程方法中的技术细节:或者为 ...
- jQ1.5中的事件系统(低版本的事件系统)
jQ的一个个版本事系统都在修正着bug和不断优化, 而且看了事件系统对事件的兼容更加熟悉, 更加了解jQ内部的事件机制. 因为jQ对事件系统引入了事件命名空间,事件的代理, 事件的手动触发,事件描述等 ...
- 使用Apache Archiva搭建Maven Repository Server
关于 Maven 私服 的搭建 这里 采用 Apache Archiva 的 Standanlone 模式来安装 1) 首先到archiva主页上下载最新版(Archiva 2.2.1 Standal ...
- 17B
贪心,之前先bfs判断是否联通,然后,反向建图,找一个未选择的点,找与他距离最近的点连边,因为每个点都要被选择,所以一个点离他最近的另一个点肯定也被选择,可以贪心 #include<queue& ...
- HTTP 405 错误 – 方法不被允许 (Method not allowed)
HTTP 协议定义一些方法,以指明为获取客户端(如您的浏览器或我们的 CheckUpDown 机器人)所指定的具体网址资源而需要在 Web 服务器上执行的动作.则这些方法如下: 介绍 OPTIONS( ...
- IOS语音集成
1.注册讯飞账号,申请APPID(注意选择IOS平台) 2.加载所需要的类库 3.导入所需要的类库文件头 4.调用申请的APPID以及所需函数,完成语音合成(需要参考官方给出的SDK文件) 详细步 ...
- ffmpeg 转成MP3采样率8000
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 69.Android之天气预报app
最近买了本书<Android第一行代码>,通篇看了下感觉不错,书本最后有个实战项目酷欧天气,闲来无事就照着敲了一遍代码,主要在请求天气接口和背景优化做了些小改动,现在来记录下. (1) a ...
- Java基础-关于session的详细解释
转自:http://hi.baidu.com/zbzbzb/item/65d73d2a4d07cfd40f37f900 一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于 ...