Android单词查找器

这篇博客介绍了一个Android应用程序,该应用使用数据库进行单词查找。主要内容包括line.xml和list.xml的布局设计,以及ACTIVITY文件的实现。博客还探讨了字符串编码、插入数据到数据库的相关技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三个布局文件: main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText1">
    <requestFocus></requestFocus>
</EditText>
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText2" android:inputType="textPostalAddress"></EditText>
<Button android:text="添加生词" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText3"></EditText>
<Button android:text="查找" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>


<ListView 
	android:id="@+id/show"
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent" 
	/>		
</LinearLayout>

 line.xml

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	>
<EditText 
	android:id="@+id/word"
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content" 
	android:width="120px"
	android:editable="false"
	/>
<TextView  
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	
	/>		
<EditText  
	android:id="@+id/detail"
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:editable="false"
	android:lines="3"
	/>	
</LinearLayout>


list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    
    <ListView android:id="@+id/listView1" android:layout_height="wrap_content" android:layout_width="match_parent"></ListView>


</LinearLayout>


ACTIVITY文件

首先是数据库类

package xuyan.sword.test;

import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ResultActivity extends  Activity{
 ListView listview;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list);
		
		listview=(ListView)this.findViewById(R.id.listView1);
		
		Intent  intent=getIntent();
		//获取intent的数据
		Bundle  data=intent.getExtras();
		//从Bundle包中取出数据
		
		@SuppressWarnings("unchecked")
		List<Map<String,String>>  list=(List<Map<String,String>>)data.getSerializable("data");
		
		//将LIST封装成SIMPLEADAPTER
		
		SimpleAdapter  adapter=new SimpleAdapter(ResultActivity.this, list, R.layout.line, new String[]{"word","detail"}, new int[]{R.id.word,R.id.detail});
		
		//填充LISTVIEW
		
		listview.setAdapter(adapter);
		
	}

}

 

 

 

 

package xuyan.sword.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SearchWordActivity extends Activity {
    /** Called when the activity is first created. */
	
	MyDataBaseHelper dbHelper;
	Button insert = null;
	Button search = null;
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);		
		// 创建MyDatabaseHelper对象,指定数据库版本为1,此处使用相对路径即可,
		// 数据库文件自动会保存在程序的数据文件夹的databases目录下。
		dbHelper = new MyDataBaseHelper(this, "myDict.db3", 1);
		insert = (Button)findViewById(R.id.button1);
		search = (Button)findViewById(R.id.button2);	
		insert.setOnClickListener(new OnClickListener()
		{
			public void onClick(View source)
			{
				//获取用户输入
				String word = ((EditText)findViewById(R.id.editText1))
					.getText().toString();
				String detail = ((EditText)findViewById(R.id.editText2))
					.getText().toString();
				//插入生词记录
				insertData(dbHelper.getReadableDatabase() , word , detail);
				//显示提示信息
				Toast.makeText(SearchWordActivity.this, "添加生词成功!" , 8000)
					.show();
			}			
		});	

		search.setOnClickListener(new OnClickListener()
		{
			public void onClick(View source)
			{
				// 获取用户输入
				String key = ((EditText) findViewById(R.id.editText3)).getText()
					.toString();
				// 执行查询
				Cursor cursor = dbHelper.getReadableDatabase().rawQuery(
					"select * from dict where word like ? or detail like ?", 
					new String[]{"%" + key + "%" , "%" + key + "%"});
				
				//创建一个Bundle对象
				Bundle data = new Bundle();
				data.putSerializable("data", converCursorToList(cursor));
				//创建一个Intent
				Intent intent = new Intent(SearchWordActivity.this
					, ResultActivity.class);
				intent.putExtras(data);
				//启动Activity
				startActivity(intent);
			}
		});
	}

	protected ArrayList<Map<String , String>>
		converCursorToList(Cursor cursor)
	{
		ArrayList<Map<String , String>> result = 
			new ArrayList<Map<String , String>>();
		//遍历Cursor结果集
		while(cursor.moveToNext())
		{
			//将结果集中的数据存入ArrayList中
			Map<String , String> map = new 
				HashMap<String , String>();
			//取出查询记录中第2列、第3列的值
			map.put("word" , cursor.getString(1));
			map.put("detail" , cursor.getString(2));
			result.add(map);
		}
		return result;		
	}
	private void insertData(SQLiteDatabase db
		, String word , String detail)
	{
		//执行插入语句
		db.execSQL("insert into dict values(null , ? , ?)"
			, new String[]{word , detail});
	}
	@Override
	public void onDestroy()
	{
		super.onDestroy();
		//退出程序时关闭MyDatabaseHelper里的SQLiteDatabase
		if (dbHelper != null)
		{
			dbHelper.close();
		}
	}
}


 


 

package xuyan.sword.test;

import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ResultActivity extends  Activity{
 ListView listview;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list);
		
		listview=(ListView)this.findViewById(R.id.listView1);
		
		Intent  intent=getIntent();
		//获取intent的数据
		Bundle  data=intent.getExtras();
		//从Bundle包中取出数据
		
		@SuppressWarnings("unchecked")
		List<Map<String,String>>  list=(List<Map<String,String>>)data.getSerializable("data");
		
		//将LIST封装成SIMPLEADAPTER
		
		SimpleAdapter  adapter=new SimpleAdapter(ResultActivity.this, list, R.layout.line, new String[]{"word","detail"}, new int[]{R.id.word,R.id.detail});
		
		//填充LISTVIEW
		
		listview.setAdapter(adapter);
		
	}

}


 

 

 

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值