PersonService类中查询sqlite数据库的某一条信息
public Person select(int num){
String sql = "select * from person where id=?";
Cursor c = db.rawQuery(sql,new String[]{num+""});
Person p = null;
while(c.moveToNext()){
String name = c.getString(c.getColumnIndex("name"));
int age = c.getInt(c.getColumnIndex("age"));
String idcard = c.getString(c.getColumnIndex("IDcard"));
p = new Person(name, age, idcard);
}
c.close();
return p;
}
Activity中访问数据库查询信息
//创建数据库工具类 对象
dbHelper = new DbHelper(MainActivity.this,"person.db",null,1);
//创建数据库
db = dbHelper.getWritableDatabase();
PersonService personservice = new PersonService(db);
int num = 0;
Intent i = new Intent(MainActivity.this,ShowUserInfoActivity.class);
//访问本地数据库 获取某一条信息
Person person = personservice.select(num);
i.putExtra("name",person.getName());
i.putExtra("age", person.getAge());
i.putExtra("idcard", person.getIDcard());
startActivity(i);
ShowUserInfoActivity 显示用户信息,要通过用户输入ID动态查询用户信息
public class ShowUserInfoActivity extends Activity {
private EditText userid,username,userage,useridcard;
private String name;
private int age;
private String idcard;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showuserinfo);
initEditText();
Intent intent = this.getIntent();
name = intent.getStringExtra("name");
age = intent.getIntExtra("age",0);
idcard = intent.getStringExtra("idcard");
}
public void initEditText(){
userid = (EditText) this.findViewById(R.id.et_userid_showinfo);
username = (EditText) this.findViewById(R.id.et_username_showinfo);
userage = (EditText) this.findViewById(R.id.et_age_showinfo);
useridcard = (EditText) this.findViewById(R.id.et_idcard_showinfo);
}
public void btn_select(View v){
username.setText(name);
userage.setText(age+"");
useridcard.setText(idcard);
}
}
现在的问题是如何在ShowUserInfoActivity 里面得到那个num参数
求各位大神花点时间帮我看看 谢谢
------解决方案--------------------
像name、age那样传不行么?还是我理解错了...
------解决方案--------------------
不行的话 ,就写一个静态的参数,把num赋值给他,然后要用的时候,去取
------解决方案--------------------
因为你要动态输入得到这个值:
1、可以通过一个public static类型的变量存储你输入的ID信息,然后查询的时候读取这个静态变量的值。(缺点:破坏了类的封装性);
2、也可以通过一个回调接口,接口的参数为你这个num类型的值。(缺点:为了传这一个参数要实现一个接口,麻烦了点)
------解决方案--------------------
用Intent.putExtra(String name, Parcelable value)把Person对象保存到Intent里不行吗?
http://developer.android.com/reference/android/os/Parcelable.html