基于Java怎样实现一个简单的单词本Android App
短信预约 -IT技能 免费直播动态提醒
这篇文章跟大家分析一下“基于Java怎样实现一个简单的单词本Android App”。内容详细易懂,对“基于Java怎样实现一个简单的单词本Android App”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“基于Java怎样实现一个简单的单词本Android App”的知识吧。
布局设计
单词本主界面
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".AddDanciActivity"> <EditText android:id="@+id/addword_edit" android:layout_width="match_parent" android:layout_height="60dp" android:layout_marginTop="20dp" android:hint="单词:" android:textColor="@android:color/black" android:textColorHint="#DCDCDC" android:textSize="30dp" /> <EditText android:id="@+id/fanyiword_edit" android:layout_width="match_parent" android:layout_height="60dp" android:hint="解释:" android:textColor="@android:color/black" android:textColorHint="#DCDCDC" android:textSize="30dp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom = "true" android:layout_margin="5dp"> <ListView android:id="@+id/add_list" android:layout_width="match_parent" android:layout_height="match_parent" android:textColor="@android:color/black" android:textColorHint="#DCDCDC" android:textSize="30dp" android:layout_above="@id/lineLayout" /> <LinearLayout android:layout_height="50dp" android:layout_width="match_parent" android:id="@+id/lineLayout" android:layout_alignParentBottom="true" android:orientation="horizontal" android:gravity="center_horizontal" > <Button android:layout_width="100dp" android:layout_height="50dp" android:id="@+id/add_btn" android:text="添加" /> <Button android:layout_width="100dp" android:layout_height="50dp" android:layout_centerHorizontal="true" android:id="@+id/shanchu_btn" android:layout_gravity="center_vertical" android:text="删除" /> <Button android:layout_width="100dp" android:layout_height="50dp" android:id="@+id/quxiao_btn" android:layout_gravity="right" android:text="取消" /> </LinearLayout> </RelativeLayout> </LinearLayout>
代码
AddDanciActivity.java
单词本主界面的Activity
import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;import java.util.ArrayList;import java.util.HashMap;import java.util.Map; public class AddDanciActivity extends AppCompatActivity { private EditText wordedit; private EditText yisiedit; private Button add_btn; private Button quxiao_btn; private Button shanchu_btn; private ListView listview; private DBOpenHelper dbOpenHelper;//声明 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_danci); dbOpenHelper = new DBOpenHelper(AddDanciActivity.this, "db_dict", null, 1);//实例化,创建数据库 wordedit = (EditText) findViewById(R.id.addword_edit); yisiedit = (EditText) findViewById(R.id.fanyiword_edit); listview = (ListView) findViewById(R.id.add_list); add_btn = (Button) findViewById(R.id.add_btn); quxiao_btn = (Button) findViewById(R.id.quxiao_btn); shanchu_btn = (Button) findViewById(R.id.shanchu_btn); quxiao_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(AddDanciActivity.this, "返回单词本主界面", Toast.LENGTH_SHORT).show(); finish(); } }); shanchu_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String word = wordedit.getText().toString(); String ys = yisiedit.getText().toString(); if (word.equals("")) { Toast.makeText(AddDanciActivity.this, "填写的单词为空", Toast.LENGTH_SHORT).show(); } else { deleteData(dbOpenHelper.getReadableDatabase(), word); Toast.makeText(AddDanciActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); } } }); add_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String word = wordedit.getText().toString(); String ys = yisiedit.getText().toString(); if (word.equals("") || ys.equals("")) { Toast.makeText(AddDanciActivity.this, "填写的单词或解释为空", Toast.LENGTH_SHORT).show(); } else { insertData(dbOpenHelper.getReadableDatabase(), word, ys);//插入生词 Toast.makeText(AddDanciActivity.this, "添加生词成功", Toast.LENGTH_SHORT).show(); renew(); } } }); } //插入数据的方法 private void insertData(SQLiteDatabase sqLiteDatabase, String word, String ys) { ContentValues values = new ContentValues(); values.put("word", word);//保存单词 values.put("detail", ys); sqLiteDatabase.insert("tb_dict", null, values);//执行插入操作 renew(); } private void deleteData(SQLiteDatabase sqLiteDatabase, String word) { ContentValues values = new ContentValues(); String[] args = {String.valueOf(word)}; sqLiteDatabase.delete("tb_dict", "word=?", args);//执行删除操作 renew(); } @Override protected void onDestroy() { super.onDestroy(); if (dbOpenHelper != null) { dbOpenHelper.close();//关闭 } } public void renew() { Cursor cursor = dbOpenHelper.getReadableDatabase().query("tb_dict", null, null, null, null, null, null); ArrayList<Map<String, String>> resultList = new ArrayList<Map<String, String>>(); while (cursor.moveToNext()) { Map<String, String> map = new HashMap<String, String>(); map.put("word", cursor.getString(1)); map.put("interpret", cursor.getString(2)); resultList.add(map); } if (resultList == null || resultList.size() == 0) { Toast.makeText(AddDanciActivity.this, "很遗憾,没有相关记录!", Toast.LENGTH_SHORT).show(); } else { SimpleAdapter simpleAdapter = new SimpleAdapter(AddDanciActivity.this, resultList, R.layout.item, new String[]{"word", "interpret" }, new int[]{R.id.textView, R.id.textView2}); listview.setAdapter(simpleAdapter); } } @Override protected void onStart() { super.onStart(); renew(); }}
DBOpenHelper.java
用到的是SQLite数据库,Android自带了一种轻量级数据库,使用非常方便。
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;import androidx.annotation.Nullable; public class DBOpenHelper extends SQLiteOpenHelper { final String CREATE_TABLE_SQL = "create table tb_dict (_id integer primary key autoincrement,word,detail)";//定义创建表的 public DBOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { super(context, name, null, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_SQL);//创建单词的数据表 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.i("词典", "--版本更新" + oldVersion + "-->" + newVersion); }}
效果图
Java的特点有哪些
Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
关于基于Java怎样实现一个简单的单词本Android App就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下编程网网站!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341