-
LinearLayout 线性布局
-
orientation 方向
-
layout_weight:权重,当layout_weight设置为0dp时,他可以按比例设置元件的宽度(水平)
-
gravity:设置文本在容器中的位置
-
layout_gravity:设置容器在窗口中的位置
-
background:设置背景色
-
text_color:文本颜色
-
layout_margin:边距
1.layout_marginLeft 在容器文本的左边填充距离
- layout_marginBottom 在容器文本的下面填充距离
- layout_marginTop 在容器文本的上方填充距离
- layout_marginRight 在容器文本的右边填充距离
-
-
RelativeLayout 相对布局
- layout_alignParentTop=“true” 在父容器的顶部
- layout_centerHorizontal=“true” 水平居中
- textSize=“16dp”
- 绝对位置
- android:layout_alignParentBottom=“true” 在窗口下方
- android:layout_alignParentLeft=“true” 在窗口左边
- android:layout_alignParentRight=“true” 在窗口右边
- android:layout_centerInParent=“true” 在窗口正中
- layout_centerHorizontal=“true” 水平居中
- layout_centerVertical=“true” 垂直居中
- 相对位置
- android:layout_below="@id" 在指定元件下方
- android:layout_above="@id" 在指定元件上方
- android:layout_toRightOf="@id" 在指定元件右方
- android:layout_toLeftOf="@id" 在指定元件左方
-
ScrollView 滚动视图
- CheckBox 复选框
跳转视图(activity_main2.xml)
配置文件java 主布局配置(Mainactivity.java)
public class MainActivity extends AppCompatActivity{
CheckBox cb_1;
CheckBox cb_2;
CheckBox cb_3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cb_1 = (CheckBox) findViewById(R.id.cb_1);
cb_2 = (CheckBox) findViewById(R.id.cb_2);
cb_3 = (CheckBox) findViewById(R.id.cb_3);
Button btn1 = (Button) findViewById(R.id.btn_ok);
btn1.setOnClickListener(new myClick());
Button btn2 = (Button) findViewById(R.id.btn_no);
btn2.setOnClickListener(new myClick());
String []strs={"张三","李四","王五"};
ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,strs);
ListView lv=findViewById(R.id.lv_1);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int i, long l) {
// Toast.makeText(MainActivity.this,"pos:""position",Toast.LENGTH_LONG).show();
}
});
// 1种
// @Override
// public void onClick(View view) {
// Toast.makeText(MainActivity.this, "不选也得选", Toast.LENGTH_SHORT).show();
// }
// });
// DatePicker dp=(DatePicker)findViewById(R.id.dp);
// dp.setonDateChangedListener(new);
// btn1.setonClickListener(new View.onClickListener() {
// @Override
// public void onClick(View view) {
// String str_hobby = "您的爱好是:";
// if (cb_1.isChecked()) str_hobby += "黑丝";
// if (cb_2.isChecked()) str_hobby += "白丝";
// if (cb_3.isChecked()) str_hobby += "渔网";
// Toast.makeText(MainActivity.this, str_hobby, Toast.LENGTH_LONG).show();
// }
// });
}
// 2种
class myClick implements View.OnClickListener{
@Override
public void onClick(View v){
int id=v.getId();
switch (id){
case R.id.btn_ok:
String str_hobby = "您的爱好是:";
if (cb_1.isChecked()) str_hobby += "黑丝";
if (cb_2.isChecked()) str_hobby += "白丝";
if (cb_3.isChecked()) str_hobby += "渔网";
Toast.makeText(MainActivity.this, str_hobby, Toast.LENGTH_LONG).show()
;break;
case R.id.btn_no:
Toast.makeText(MainActivity.this, "不选就看", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivityForResult(intent,1);break;
}
}
}
}
跳转页面配置(Mainactivity2.java)
public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
// setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.rb_1);
Button btn2 = (Button) findViewById(R.id.rb_2);
Button btn3 = (Button) findViewById(R.id.jump2);
btn1.setOnClickListener(new myClick());
btn2.setOnClickListener(new myClick());
btn3.setOnClickListener(new myClick());
}
class myClick implements View.OnClickListener {
@Override
public void onClick(View v) {
ImageView iv= (ImageView) findViewById(R.id.pt_1);
switch (v.getId()) {
case R.id.rb_1:iv.setImageResource(R.drawable.mei2);break;
case R.id.rb_2:iv.setImageResource(R.drawable.mei3);break;
case R.id.jump2:
Intent intent = new Intent(MainActivity2.this, MainActivity.class);
startActivityForResult(intent,1);break;
}
}
}
}
计算器
布局(activity_main_xml)
配置文件(MainActivity.java)
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
String op;
Double op1,op2,result;
boolean flag=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_1=(Button) findViewById(R.id.btn_1);
Button btn_2=(Button) findViewById(R.id.btn_2);
Button btn_3=(Button) findViewById(R.id.btn_3);
Button btn_4=(Button) findViewById(R.id.btn_4);
Button btn_5=(Button) findViewById(R.id.btn_5);
Button btn_6=(Button) findViewById(R.id.btn_6);
Button btn_7=(Button) findViewById(R.id.btn_7);
Button btn_8=(Button) findViewById(R.id.btn_8);
Button btn_9=(Button) findViewById(R.id.btn_9);
Button btn_0=(Button) findViewById(R.id.btn_0);
Button btn_ac=(Button) findViewById(R.id.btn_ac);
Button btn_back=(Button) findViewById(R.id.btn_back);
Button btn_add=(Button) findViewById(R.id.btn_add);
Button btn_cheng=(Button) findViewById(R.id.btn_cheng);
Button btn_chu=(Button) findViewById(R.id.btn_chu);
Button btn_sub=(Button) findViewById(R.id.btn_sub);
Button btn_dot=(Button) findViewById(R.id.btn_dot);
Button btn_equal=(Button) findViewById(R.id.btn_equal);
btn_1.setOnClickListener(new myClick());
btn_2.setOnClickListener(new myClick());
btn_3.setOnClickListener(new myClick());
btn_4.setOnClickListener(new myClick());
btn_5.setOnClickListener(new myClick());
btn_6.setOnClickListener(new myClick());
btn_7.setOnClickListener(new myClick());
btn_8.setOnClickListener(new myClick());
btn_9.setOnClickListener(new myClick());
btn_0.setOnClickListener(new myClick());
btn_ac.setOnClickListener(new myClick());
btn_back.setOnClickListener(new myClick());
btn_add.setOnClickListener(new myClick());
btn_cheng.setOnClickListener(new myClick());
btn_chu.setOnClickListener(new myClick());
btn_dot.setOnClickListener(new myClick());
btn_equal.setOnClickListener(new myClick());
btn_sub.setOnClickListener(new myClick());
}
class myClick implements View.OnClickListener{
@Override
public void onClick(View v){
TextView tv=(TextView) findViewById(R.id.text_1);
String str=tv.getText().toString();
switch (v.getId()){
case R.id.btn_ac:tv.setText("0");break;
case R.id.btn_back:
if(str.length()==1)
{
tv.setText("0");
}
else{
tv.setText(str.substring(0,str.length()-1));
}
;break;
case R.id.btn_1:
case R.id.btn_2:
case R.id.btn_3:
case R.id.btn_4:
case R.id.btn_5:
case R.id.btn_6:
case R.id.btn_7:
case R.id.btn_8:
case R.id.btn_9:
case R.id.btn_0:
Button btn=(Button)findViewById(v.getId());
String btn_text=btn.getText().toString();
if(!str.equals("0")&&!flag)
tv.setText(str+btn_text);
else
tv.setText(btn_text);
flag=false;
break;
case R.id.btn_dot:
tv.setText(str+".");
if(!str.contains("."))
break;
case R.id.btn_add:
case R.id.btn_cheng:
case R.id.btn_chu:
case R.id.btn_sub:
Button btn2=(Button) findViewById(v.getId());
op=btn2.getText().toString();
op1=Double.parseDouble(str);
flag=true;
break;
case R.id.btn_equal:
op2=Double.parseDouble(str);
switch (op){
case "+":result=op1+op2; break;
case "-":result=op1-op2; break;
case "*":result=op1*op2; break;
case "/":
if(op2!=0.0)result=op1/op2;
else {result=0.0;}break;
}
tv.setText(String.valueOf(result));
}
}
}
}
布局中元素位置应用
拍照
布局xml
activity_main_xml(layout)
activity_take_photo.xml(layout)
file_paths.xml(xml)
AndroidManifest.xml
配置文件java MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_photo =(Button) findViewById(R.id.btn_photo);
btn_photo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,TakePhotoActivity.class);
startActivity(intent);
}
});
}
}
activity_take_photo.java
package com.example.mainfest.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TakePhotoActivity extends AppCompatActivity {
final int TAKE_PHOTO = 1;
ImageView img;
Uri imageUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_take_photo);
Button btn_takePhoto = (Button) findViewById(R.id.btn_takePhoto);
img = (ImageView) findViewById(R.id.img_picture);
btn_takePhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File outputImage = new File(getExternalCacheDir(), "output_image.jpg");
try {
if (outputImage.exists())
outputImage.delete();
outputImage.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
if (Build.VERSION.SDK_INT >= 24)
imageUri = FileProvider.getUriForFile(TakePhotoActivity.this, "com.example.mainfest.myapplication.MainActivity.fileprovider", outputImage);
else
imageUri = Uri.fromFile(outputImage);
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, TAKE_PHOTO);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TAKE_PHOTO:
if (resultCode == RESULT_OK) {
try {
Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
img.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
break;
default:
break;
}
}
}
元素增删改(水果为例)
布局
主布局(activity_main.xml)
添加和修改界面布局(activity_edit_and_add.xml)
显示布局(fruit_item.xml)
配置文件java MainActivity.java
public class MainActivity extends AppCompatActivity {
List fruitsList = new ArrayList<>();
FruitAdapter adapter;
int pos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits();
adapter = new FruitAdapter(MainActivity.this, R.layout.fruit_item, fruitsList);
ListView listView = (ListView) findViewById(R.id.lv_1);
listView.setAdapter(adapter);
ImageButton ib_1 = (ImageButton)findViewById(R.id.imgbtn_add);
ib_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,EditAndAddActivity.class);
startActivityForResult(intent,1);
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int position, long id) {
Fruit fruit=fruitsList.get(position);
Intent intent = new Intent(MainActivity.this,EditAndAddActivity.class);
intent.putExtra("fruitName",fruit.getName());
intent.putExtra("fruitIntr",fruit.getIntr());
intent.putExtra("fruitPosition",position);
startActivityForResult(intent,2);
pos=position;
// Toast.makeText(MainActivity.this,"你点击了:"+fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> adapterView, View view, int position, long id) {
Fruit fruit=fruitsList.get(position);
alertDialog.Builder alert=new alertDialog.Builder(MainActivity.this);
alert.setTitle("确认删除").setMessage("是否确认删除"+fruit.getName()+"?");
alert.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
fruitsList.remove(position);
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
dissmiss();
}
private void dissmiss() {
}
});
alert.show();
return false;
}
});
}
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 1: //从添加按钮返回
if (resultCode==RESULT_OK){
String str_fruitName=data.getStringExtra("fruitName");
String str_fruitIntr=data.getStringExtra("fruitIntr");
Fruit fruit = new Fruit(str_fruitName,R.drawable.china,str_fruitIntr);
fruitsList.add(fruit);
adapter.notifyDataSetChanged();
}break;
case 2: //从编辑返回
if (resultCode==RESULT_OK){
String str_fruitName=data.getStringExtra("fruitName");
String str_fruitIntr=data.getStringExtra("fruitIntr");
Fruit fruit=new Fruit(str_fruitName,R.drawable.add,str_fruitIntr);
fruitsList.set(pos,fruit);
adapter.notifyDataSetChanged();
}
}
}
void initFruits() {
for (int i = 0; i < 1; i++) {
Fruit apple = new Fruit("北京", R.drawable.biejing,"首都");
fruitsList.add(apple);
Fruit banana = new Fruit("上海", R.drawable.shanghai,"上海");
fruitsList.add(banana);
Fruit orange = new Fruit("成都", R.drawable.chengdu,"美女");
fruitsList.add(orange);
Fruit watermelon = new Fruit("西安", R.drawable.xian,"兵马俑");
fruitsList.add(watermelon);
Fruit pear = new Fruit("天津", R.drawable.tianjin,"相声");
fruitsList.add(pear);
Fruit grape = new Fruit("云南", R.drawable.yunnan,"少数名族");
fruitsList.add(grape);
Fruit pineapple = new Fruit("江苏", R.drawable.jiangsu,"我也不知道");
fruitsList.add(pineapple);
Fruit cherry = new Fruit("南京", R.drawable.nanjing,"嘤嘤嘤,好凶凶");
fruitsList.add(cherry);
Fruit mango = new Fruit("浙江", R.drawable.zhejiang,"景色美");
fruitsList.add(mango);
}
}
}
EditAndAddActivity.java
public class EditAndAddActivity extends AppCompatActivity {
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_and_add);
EditText et_fruitName = (EditText) findViewById(R.id.et_fruit_name);
EditText et_fruitIntr = (EditText) findViewById(R.id.et_fruit_intr);
Button btn_submit =(Button) findViewById(R.id.btn_submit);
Button btn_cancle =(Button) findViewById(R.id.btn_cancle);
intent =getIntent();
et_fruitName.setText(intent.getStringExtra("fruitName"));
et_fruitIntr.setText(intent.getStringExtra("fruitIntr"));
final int pos=intent.getIntExtra("fruitPosition",0);
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String str_fruitName=et_fruitName.getText().toString();
String str_fruitIntr=et_fruitIntr.getText().toString();
if (str_fruitName.isEmpty()||str_fruitIntr.isEmpty()){
setResult(RESULT_CANCELED);
finish();
}
else {
intent.putExtra("fruitName",str_fruitName);
intent.putExtra("fruitIntr",str_fruitIntr);
intent.putExtra("fruitPosition",pos);
setResult(RESULT_OK,intent);
finish();
}
}
});
btn_cancle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(EditAndAddActivity.this,MainActivity.class);
startActivity(intent);
}
});
}
}
Fruit.java
public class Fruit {
String name;
int imgId;
String intr;
public Fruit (String name,int imgId,String intr){
this.name=name;
this.imgId=imgId;
this.intr=intr;
}
String getName(){
return name;
}
int getImgId(){
return imgId;
}
String getIntr(){
return intr;
}
}
FruitAdapter.java
public class FruitAdapter extends ArrayAdapter数据库 数据库的增删改查 布局 activity_main.xml{ int resourceId; public FruitAdapter(Context context, int resource, List objects){ super(context,resource,objects); resourceId=resource; } @Override public View getView(int position, View conertView, ViewGroup parenet){ Fruit fruit=getItem(position); View view= LayoutInflater.from(getContext()).inflate(resourceId,parenet,false); ImageView imageView=(ImageView)view.findViewById(R.id.img_fruit); TextView tv_fruitName=(TextView) view.findViewById(R.id.tv_FruitName); TextView tv_fruitIntr=(TextView) view.findViewById(R.id.tv_FruitIntr) ; tv_fruitIntr.setText(fruit.intr); imageView.setImageResource(fruit.getImgId()); tv_fruitName.setText(fruit.getName()); return view; } }
配置 DBHelper.java
public class DBHelper extends SQLiteOpenHelper {
final String CREATE_TABLE1="create table Text(_id integer primary key autoincrement,content text)";
Context context;
public DBHelper(Context context,String dbname,int version){
super(context,dbname,null,version);
this.context=context;
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL(CREATE_TABLE1);
Toast.makeText(context,"创建成功",Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
db.execSQL("drop table if exists Test");
onCreate(db);
}
public void insert(ContentValues values){
SQLiteDatabase db=getWritableDatabase();
db.insert("Text",null,values);
db.close();
Toast.makeText(context,"插入数据成功",Toast.LENGTH_SHORT).show();
}
public Cursor queryAll(){
SQLiteDatabase db=getWritableDatabase();
Cursor cursor=db.query("Text",null,null,null,null,null,null);
return cursor;
}
public Cursor query(String str){
SQLiteDatabase db=getWritableDatabase();
Cursor cursor=db.query("Text",null,"content=?",new String[]{str},null,null,null);
// Cursor cursor=db.rawQuery("select * from text where content='"+str+"'",null);
return cursor;
}
public void delete(String str){
SQLiteDatabase db=getWritableDatabase();
db.delete("Text","content=?",new String[]{str});
db.close();
}
public void update(String str_old,ContentValues values_new){
SQLiteDatabase db=getWritableDatabase();
db.update("Text",values_new,"content=?",new String[]{str_old});
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
DBHelper dbHelper=new DBHelper(MainActivity.this,"MyTextDatabase.db",1);
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_create=(Button) findViewById(R.id.btn_create);
Button btn_insert=(Button) findViewById(R.id.btn_insert);
Button btn_show=(Button) findViewById(R.id.btn_show);
Button btn_detele=(Button) findViewById(R.id.btn_delete);
Button btn_update=(Button) findViewById(R.id.btn_update);
Button btn_query=(Button) findViewById(R.id.btn_query);
btn_create.setOnClickListener(new MyClick());
btn_insert.setOnClickListener(new MyClick());
btn_show.setOnClickListener(new MyClick());
btn_detele.setOnClickListener(new MyClick());
btn_update.setOnClickListener(new MyClick());
btn_query.setOnClickListener(new MyClick());
editText=(EditText) findViewById(R.id.et_content);
}
class MyClick implements View.OnClickListener{
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.btn_create:
dbHelper.getWritableDatabase();
break;
case R.id.btn_insert:
String str=editText.getText().toString();
ContentValues contentValues=new ContentValues();
contentValues.put("content",str);
dbHelper.insert(contentValues);
show();
break;
case R.id.btn_show:
show();
break;
case R.id.btn_delete:
str=editText.getText().toString();
dbHelper.delete(str);
break;
case R.id.btn_update:
str=editText.getText().toString();
EditText et_new_content=(EditText) findViewById(R.id.et_newContent);
String str_new=et_new_content.getText().toString();
ContentValues contentValues1 =new ContentValues();
contentValues1.put("content",str_new);
dbHelper.update(str,contentValues1);
break;
case R.id.btn_query:
str=editText.getText().toString();
Cursor cursor=dbHelper.query(str);
String str2="id contentn";
if (cursor.moveToFirst())
do {
str2+=cursor.getString(0)+" ";
str2+=cursor.getString(1)+"n";
}while (cursor.moveToNext());
TextView textView=(TextView) findViewById(R.id.tv_show);
textView.setText(str2);
break;
}
}
}
public void show(){
Cursor cursor=dbHelper.queryAll();
String str="id contentn";
if (cursor.moveToFirst())
do {
str+=cursor.getString(0)+" ";
str+=cursor.getString(1)+"n";
}while (cursor.moveToNext());
TextView textView=(TextView) findViewById(R.id.tv_show);
textView.setText(str);
}
}
注册登录和数据增删改查
布局
登录页面(activity_login.xml)
主页(activity_main.xml)
注册界面(activity_register.xml)
添加修改数据界面(activity_new_notes.xml)
新数据库信息界面(listview_item.xml)
配置 MainActivity
public class MainActivity extends AppCompatActivity {
DBHelper dbHelper=new DBHelper(MainActivity.this,"MyDatabase.db",2);
ListView listView;
final int NEW_NOTE=1;
final int EDIT_NOTE=2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView) findViewById(R.id.list_view);
renderListView();
Button btn_new=(Button) findViewById(R.id.btn_new_note);
btn_new.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,NewNotesActivity.class);
startActivityForResult(intent,NEW_NOTE);
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int i, long id) {
Cursor cursor= (Cursor) listView.getItemAtPosition(i);
@SuppressLint("Range") String title=cursor.getString(cursor.getColumnIndex("title"));
@SuppressLint("Range") String content=cursor.getString(cursor.getColumnIndex("content"));
Intent intent = new Intent(MainActivity.this,NewNotesActivity.class);
intent.putExtra("title",title);
intent.putExtra("content",content);
startActivityForResult(intent,EDIT_NOTE);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> adapterView, View view, int i, long l) {
Cursor cursor=(Cursor) listView.getItemAtPosition(i);
@SuppressLint("Range") String title=cursor.getString(cursor.getColumnIndex("title"));
alertDialog.Builder builder= new alertDialog.Builder(MainActivity.this);
builder.setTitle("删除数据·").setMessage("确认删除"+title+"?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dbHelper.deleteNotes(title);
renderListView();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.show();
return true;
}
});
}
protected void renderListView(){
dbHelper.getWritableDatabase();
Cursor cursor=dbHelper.queryAll("Notes");
String from[]=new String[]{"_id","title","content","time"};
int to[]=new int[]{R.id.tv_id,R.id.tv_title,R.id.tv_time,R.id.tv_content};
SimpleCursorAdapter adapter=new SimpleCursorAdapter(MainActivity.this,R.layout.listview_item,cursor,from,to,0);
listView.setAdapter(adapter);
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent intent){
super.onActivityResult(requestCode,resultCode,intent);
if (resultCode==RESULT_OK){
String title=intent.getStringExtra("title");
String content=intent.getStringExtra("content");
String old_title=intent.getStringExtra("old_title");
// String id=intent.getStringExtra("id");
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date=new Date(System.currentTimeMillis());
String time=simpleDateFormat.format(date);
ContentValues values=new ContentValues();
values.put("title",title);
values.put("content",content);
values.put("time",time);
switch (requestCode){
case NEW_NOTE:
dbHelper.insertNotes(values);
break;
case EDIT_NOTE:
dbHelper.updateNotes(old_title,values);
break;
}
}
renderListView();
}
}
LoginActivity.java
public class LoginActivity extends AppCompatActivity {
DBHelper dbHelper=new DBHelper(LoginActivity.this,"MyDatabase.db",2);
EditText et_username;
EditText et_password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
et_username=(EditText) findViewById(R.id.et_username_login);
et_password=(EditText) findViewById(R.id.et_password_login);
Button btn_login=(Button) findViewById(R.id.btn_login);
Button btn_register=(Button) findViewById(R.id.btn_register);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username=et_username.getText().toString();
String password=et_password.getText().toString();
if (username.isEmpty()||password.isEmpty())
Toast.makeText(LoginActivity.this,"用户名或密码不能为空",Toast.LENGTH_SHORT).show();
else {
if (dbHelper.queryUserByNameAndPass(username,password))
{
Intent intent=new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
}
else Toast.makeText(LoginActivity.this,"用户名或密码错误",Toast.LENGTH_SHORT).show();
}
}
});
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(LoginActivity.this,RegisterActivity.class);
startActivity(intent);
}
});
}
}
DBHelper.java
public class DBHelper extends SQLiteOpenHelper {
final String CREATE_TABLE1="create table Users(_id integer primary key autoincrement,username text,password text)";
final String CREATE_TABLE1_NOTES="create table Notes(_id integer primary key autoincrement,title text,content text ,time)";
Context context;
public DBHelper(Context context, String dbname, int version){
super(context,dbname,null,version);
this.context=context;
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL(CREATE_TABLE1);
db.execSQL(CREATE_TABLE1_NOTES);
Toast.makeText(context,"创建成功",Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
db.execSQL("drop table if exists Users");
db.execSQL("drop table if exists Notes");
onCreate(db);
}
public void insertUser(ContentValues values){
SQLiteDatabase db=getWritableDatabase();
db.insert("Users",null,values);
db.close();
}
public void insertNotes(ContentValues values){
SQLiteDatabase db=getWritableDatabase();
db.insert("Notes",null,values);
db.close();
}
public Cursor queryAll(String dbname){
SQLiteDatabase db=getWritableDatabase();
Cursor cursor=db.query(dbname,null,null,null,null,null,null);
return cursor;
}
public boolean queryUserByNameAndPass(String username,String password) {
SQLiteDatabase db = getWritableDatabase();
Cursor cursor = db.query("Users", null, "username=? and password=?", new String[]{username, password}, null, null, null);
// Cursor cursor=db.rawQuery("select * from text where content='"+str+"'",null);
if (cursor.moveToFirst()){
return true;}
else{
return false;}
}
public boolean queryUserByName(String username){
SQLiteDatabase db=getWritableDatabase();
Cursor cursor=db.query("Users",null,"username=?",new String[]{username},null,null,null);
// Cursor cursor=db.rawQuery("select * from text where content='"+str+"'",null);
if (cursor.moveToFirst()){
return true;}
else{
return false;}
}
public void deleteUser(String username){
SQLiteDatabase db=getWritableDatabase();
db.delete("Users","username=?",new String[]{username});
db.close();
}
public void deleteNotes(String username){
SQLiteDatabase db=getWritableDatabase();
db.delete("Notes","title=?",new String[]{username});
db.close();
}
public void updateUser(String username,ContentValues values){
SQLiteDatabase db=getWritableDatabase();
db.update("Users",values,"username=?",new String[]{username});
}
public void updateNotes(String title,ContentValues values){
SQLiteDatabase db=getWritableDatabase();
db.update("Notes",values,"title=?",new String[]{title});
}
}
NewNotesActivity.java
public class NewNotesActivity extends AppCompatActivity {
EditText et_title;
EditText et_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_notes);
et_title=(EditText) findViewById(R.id.et_title);
et_content=(EditText) findViewById(R.id.et_content);
Intent oldIntent=getIntent();
final String title=oldIntent.getStringExtra("title");
final String content=oldIntent.getStringExtra("content");
et_title.setText(title);
et_content.setText(content);
Button btn_submit=(Button) findViewById(R.id.btn_submit);
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.putExtra("old_title",title);
intent.putExtra("title",et_title.getText().toString());
intent.putExtra("content",et_content.getText().toString());
setResult(RESULT_OK,intent);
finish();
}
});
}
}
RegisterActivity.java
public class RegisterActivity extends AppCompatActivity {
DBHelper dbHelper=new DBHelper(RegisterActivity.this,"MyDatabase.db",2);
EditText et_username;
EditText et_password;
EditText et_password2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
et_username=(EditText) findViewById(R.id.et_username_register);
et_password=(EditText) findViewById(R.id.et_password_register);
et_password2=(EditText) findViewById(R.id.et_password_/confirm/i);
Button btn_ok=(Button) findViewById(R.id.btn_ok);
Button btn_cancel=(Button) findViewById(R.id.btn_cancel);
btn_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username=et_username.getText().toString();
String password=et_password.getText().toString();
String password2=et_password2.getText().toString();
if (username.isEmpty()||password.isEmpty()||password2.isEmpty()){
Toast.makeText(RegisterActivity.this,"用户名,密码或确认密码不能为空",Toast.LENGTH_SHORT).show();}
else if (!password.equals(password2)){
Toast.makeText(RegisterActivity.this,"密码和确认密码不一致",Toast.LENGTH_SHORT).show();
}
else if (dbHelper.queryUserByName(username))
Toast.makeText(RegisterActivity.this,"用户名不能重复",Toast.LENGTH_SHORT).show();
else {
ContentValues contentValues=new ContentValues();
contentValues.put("username",username);
contentValues.put("password",password);
dbHelper.insertUser(contentValues);
Toast.makeText(RegisterActivity.this,"插入用户"+username+"成功",Toast.LENGTH_SHORT).show();
}
}
});
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
}



