package com.example.xx.myapplication.ui;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import com.example.xx.myapplication.PersonAdapter;
import com.example.xx.myapplication.R;
import com.example.xx.myapplication.dal.PersonDao;
import com.example.xx.myapplication.entity.Person;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener,DialogInterface.OnClickListener{
private Button btn_add;
private ListView lv_contacts;
private List<Person> persons;
private PersonAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_add = findViewById(R.id.btn_add);
lv_contacts = findViewById(R.id.lv_contacts);
btn_add.setOnClickListener(this);
//获取数据源
PersonDao personDao = new PersonDao(this);
persons = personDao.query(null, null, "_name ASC");
adapter = new PersonAdapter(this,persons);
lv_contacts.setAdapter(adapter);
//为listview注册ContextMenu
registerForContextMenu(lv_contacts);
}
public static final int MENU_ITEM_EDIT = 1;
public static final int MENU_ITEM_DELETE = 2;
private int actionPosition;
@Override
public void onCreateContextMenu(ContextMenu menu,
View v,
ContextMenu.ContextMenuInfo menuInfo) {
//将参数转换为AdapterView.AdapterContextMenuInfo类型
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
actionPosition = info.position;
menu.add(Menu.NONE,MENU_ITEM_EDIT,Menu.NONE,"编辑"+persons.get(actionPosition).getName()+"的个人信息");
menu.add(Menu.NONE,MENU_ITEM_DELETE,Menu.NONE,"删除"+persons.get(actionPosition).getName()+"的个人信息");
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case MENU_ITEM_EDIT:
//打开新的Activity
Intent intent = new Intent(this,ContactFormActivity.class);
intent.putExtra("person",persons.get(actionPosition));
startActivity(intent);
break;
case MENU_ITEM_DELETE:
//弹出确认对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.setTitle("警告")
.setMessage("删除操作不可恢复,确定删除吗?")
.setPositiveButton("确定",this)
.setNegativeButton("取消",null)
.create();
dialog.show();
break;
}
return super.onContextItemSelected(item);
}
@Override
public void onClick(View view) {
Intent intent = new Intent(this,ContactFormActivity.class);
startActivity(intent);
}
@Override
protected void onRestart() {
super.onRestart();
//获取新的数据,刷新列表
PersonDao personDao = new PersonDao(this);
persons.clear();
persons.addAll(personDao.query(null, null, "_name ASC"));
adapter.notifyDataSetChanged();
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//删除
PersonDao personDao = new PersonDao(this);
int affectedRows = personDao.delete(persons.get(actionPosition).getId());
if(affectedRows > 0){
Toast.makeText(this,"删除成功",Toast.LENGTH_SHORT).show();
//获取新数据,刷新页面
persons.clear();
persons.addAll(personDao.query(null, null, "_name ASC"));
adapter.notifyDataSetChanged();
}else {
Toast.makeText(this,"删除失败,请联系管理员",Toast.LENGTH_SHORT).show();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
SQLite练习项目——联系人列表增删改查
共98个文件
xml:46个
java:11个
png:10个
需积分: 15 8 下载量 78 浏览量
2018-05-28
10:56:38
上传
评论
收藏 1.14MB ZIP 举报
温馨提示
SQLite练习项目——联系人列表增删改查,原博客地址https://blog.csdn.net/u010356768/article/details/80461429
资源推荐
资源详情
资源评论
收起资源包目录
SQLiteApplication.zip (98个子文件)
MyApplication
MyApplication.iml 867B
gradlew 5KB
settings.gradle 16B
.idea
libraries
Gradle__com_android_support_support_compat_26_1_0.xml 700B
Gradle__com_android_support_support_vector_drawable_26_1_0.xml 745B
Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml 367B
Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml 551B
Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml 518B
Gradle__com_android_support_support_fragment_26_1_0.xml 710B
Gradle__android_arch_lifecycle_runtime_1_0_0.xml 666B
Gradle__com_android_support_test_rules_1_0_1.xml 660B
Gradle__com_android_support_animated_vector_drawable_26_1_0.xml 750B
Gradle__android_arch_lifecycle_common_1_0_0_jar.xml 556B
Gradle__android_arch_core_common_1_0_0_jar.xml 541B
Gradle__com_android_support_test_runner_1_0_1.xml 665B
Gradle__com_android_support_constraint_constraint_layout_1_0_2.xml 509B
Gradle__com_android_support_support_v4_26_1_0.xml 680B
Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml 586B
Gradle__com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml 380B
Gradle__com_android_support_support_media_compat_26_1_0.xml 730B
Gradle__javax_inject_javax_inject_1_jar.xml 536B
Gradle__com_android_support_test_espresso_espresso_core_3_0_1.xml 718B
Gradle__junit_junit_4_12_jar.xml 495B
Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml 565B
Gradle__com_squareup_javawriter_2_1_1_jar.xml 546B
Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_1.xml 773B
Gradle__com_android_support_support_annotations_26_1_0_jar.xml 616B
Gradle__com_android_support_support_core_ui_26_1_0.xml 705B
Gradle__com_android_support_appcompat_v7_26_1_0.xml 690B
Gradle__com_android_support_support_core_utils_26_1_0.xml 720B
runConfigurations.xml 564B
misc.xml 2KB
workspace.xml 216KB
caches
build_file_checksums.ser 537B
gradle.xml 626B
modules.xml 363B
codeStyles
Project.xml 2KB
gradle
wrapper
gradle-wrapper.properties 236B
gradle-wrapper.jar 52KB
.gradle
buildOutputCleanup
cache.properties.lock 2B
cache.properties 51B
built.bin 0B
4.1
fileChanges
last-build.bin 1B
taskHistory
taskHistory.lock 17B
fileSnapshots.bin 2.23MB
taskHistory.bin 72KB
javaCompile
javaCompile.lock 17B
classAnalysis.bin 852KB
jarAnalysis.bin 314KB
taskJars.bin 20KB
taskHistory.bin 671KB
fileContent
fileContent.lock 17B
fileHashes
fileHashes.bin 327KB
resourceHashesCache.bin 20KB
fileHashes.lock 17B
local.properties 428B
gradlew.bat 2KB
gradle.properties 747B
.gitignore 127B
app
src
androidTest
java
com
example
xx
myapplication
ExampleInstrumentedTest.java 783B
test
java
com
example
xx
myapplication
ExampleUnitTest.java 422B
main
AndroidManifest.xml 869B
res
mipmap-hdpi
ic_launcher.png 3KB
ic_launcher_round.png 5KB
mipmap-xxxhdpi
ic_launcher.png 9KB
ic_launcher_round.png 15KB
mipmap-xhdpi
ic_launcher.png 4KB
ic_launcher_round.png 7KB
mipmap-anydpi-v26
ic_launcher.xml 276B
ic_launcher_round.xml 276B
menu
main.xml 326B
mipmap-mdpi
ic_launcher.png 2KB
ic_launcher_round.png 3KB
drawable
ic_launcher_background.xml 6KB
layout
activity_menu.xml 798B
item_contact.xml 1019B
activity_contact_form.xml 2KB
activity_main.xml 701B
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 214B
strings.xml 80B
styles.xml 394B
mipmap-xxhdpi
ic_launcher.png 6KB
ic_launcher_round.png 10KB
java
com
example
xx
myapplication
ui
MainActivity.java 5KB
MenuActivity.java 3KB
ContactFormActivity.java 4KB
PersonAdapter.java 2KB
dal
IDao.java 313B
PersonDao.java 4KB
util
DBOpenHelper.java 1KB
entity
Person.java 2KB
adapter
BaseAdapter.java 2KB
libs
app.iml 12KB
.gitignore 8B
build.gradle 961B
proguard-rules.pro 772B
build.gradle 573B
共 98 条
- 1
资源评论
Errol_King
- 粉丝: 516
- 资源: 51
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功