我已开始编写包含员工记录的Finder
应用程序,用户可以在单击useractivity.java中的“搜索”按钮时使用“id”查找员工记录,并且数据应显示在Empdetails.java活动中textview包含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);
}
}
答案 0 :(得分:0)
在UserActivity类上放置一个editText用于id搜索。并使用sql查询从一个Button的onClickListener检索数据库中的数据(SELECT * From tableName where id =(这里将id no用户将要搜索的位置))并将其显示在listview中。 对于简单示例,请使用此参考。 http://javapapers.com/android/android-sqlite-database/
答案 1 :(得分:0)
我将解释执行此操作的逻辑方法:
您需要检查从用户处获得的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.
至于实际实现该逻辑的代码,请检查我给你的链接并尝试自己编写。
答案 2 :(得分:0)
创建一个新类来创建数据库并进行查询/选择,插入和更新。
将你的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
}