[英]Retrieve data from the database when Search Button is click in Android
[英]How to retrieve a record from android database by click on Search button?
我已经开始为包含员工记录的Finder
应用进行编码,并且在useractivity.java中单击“搜索”按钮时,用户将能够通过使用“ id”来查找员工记录,并且数据应显示在Empdetails中。textview中的java活动包含要显示的3个文本字段。 下面是我的代码,请帮助我
我的要求:我想通过在UserActivity.java中提供一个ID来检索一条记录,当我单击“搜索”按钮时,它应该在文本视图的Empdetails.java中获得一条记录详细信息
输出:
id:12345
名字:vijay kumar
电子邮件:vijay@gmail.com
如上图所示
感谢Vijay Kumar的前瞻性。
1)AdminActivity.java
public class AdminActivity extends Activity {
String id,name,email;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin);
db=openOrCreateDatabase("EMP",MODE_PRIVATE,null);
db.execSQL("CREATE TABLE IF NOT EXISTS EMP(id varchar,name varchar,email varchar);");
}
public void Submit(View view)
{
EditText edittext1=(EditText) findViewById(R.id.id);
EditText edittext2=(EditText) findViewById(R.id.name);
EditText edittext3=(EditText) findViewById(R.id.email);
id=edittext1.getText().toString();
name=edittext2.getText().toString();
email=edittext3.getText().toString();
db.execSQL("INSERT INTO EMP(id,name,email) values ('"+id+"','"+name+"','"+email+"');");
if(id.equals("") && name.equals("") && email.equals(""))
{
Toast.makeText(getApplicationContext(), "Please enter details and submit", Toast.LENGTH_SHORT).show();
}
else
if(id.equals(""))
{
Toast toast=new Toast (getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
Toast.makeText(getApplicationContext(), "Enter id....", Toast.LENGTH_SHORT).show();
}
else
if(name.equals(""))
{
Toast toast=new Toast (getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
Toast.makeText(getApplicationContext(), "Enter Name....", Toast.LENGTH_SHORT).show();
}
else
if(email.equals(""))
{
Toast toast=new Toast (getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
Toast.makeText(getApplicationContext(), "Enter email.....", Toast.LENGTH_SHORT).show();
}
else
{
Toast toast=new Toast (getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
edittext1.setText("");
edittext2.setText("");
edittext3.setText("");
Toast.makeText(getApplicationContext(), "Data submitted successfully", Toast.LENGTH_SHORT).show();
db.close();
}
}
public void Exit(View view){
System.exit(0);
}
}
2)UserAvtivity.java
public class UserActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
}
public void Search(View view)
{
/////???????????????
}
public void Exit(View view)
{
System.exit(0);
}
}
在UserActivity类上放置一个editText以便进行ID搜索。 并使用sql查询在Button的onClickListener上从数据库中检索数据(SELECT * From tableName,其中id =(此处将id放在用户要搜索的位置)),并将其显示在列表视图中。 对于简单示例,请使用此参考。 http://javapapers.com/android/android-sqlite-database/
我将解释执行此操作的逻辑方法:
您将需要检查从用户那里获得的ID,并将该ID与数据库中存储的每个 ID进行比较。 找到匹配项后,您应该收集该ID下的所有详细信息。 因此,为此,您将需要一个可读的数据库,然后尝试使用Cursor收集信息。
检查此以获得更多信息: http : //www.vogella.com/tutorials/AndroidSQLite/article.html
在搜索按钮的onClick()方法中编写所有这些代码。
编辑:代码以在onClick()事件中包含以上功能:
search.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Include your code here
}
});
还可以在布局中创建一个搜索按钮,并使用实例化它
private Button search = null; // This line inside your MainActivity class
search = (Button)findViewById(R.id.search); //This line inside onCreate function.
至于实际实现该逻辑的代码,请检查我给您的链接,然后尝试自行编码。
创建一个新类,以创建数据库并进行查询/选择,插入和更新。
分离您的SQL脚本会很不错-使用字符串变量
private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMP(id varchar, name varchar, email varchar);";
要使用db.insert插入数据,请选择db.select或rawQuery 。 您需要使用Cursor从数据库查询中检索数据。 从游标获取数据后,您可以根据需要进行排列。
private static final String SELECT_ID = "SELECT name, mail FROM EMP WHERE id = ? ;";
您的数据库ID必须是INTEGER而不是varchar-它是主键或? 主键: http : //en.wikipedia.org/wiki/Unique_key SQLite Tuts: http ://www.tutorialspoint.com/sqlite/index.htm
http://developer.android.com/training/basics/data-storage/databases.html
搜索代码
Button search = (Button) findViewById(R.id.but_search);
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// DO queries, Update TextView or call your methods
}
});
这不好:
id=edittext1.getText().toString();
name=edittext2.getText().toString();
email=edittext3.getText().toString();
db.execSQL("INSERT INTO EMP(id,name,email) values ('"+id+"','"+name+"','"+email+"');");
最好先检查数据,然后将其插入数据库。
if(email.lenght() > 0 ){
// check other data, do things
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.