如何在没有按钮的情况下将数据从 activity 调用到另一个只显示数据库中的数据
how to call data from activity to another without the button only display the data inside the database
我想调用我的 CompanyDetail 以仅显示另一个 activity 上的数据。我想在显示它时将 CompanytDetail 中的按钮隐藏到另一个 activity。这是我的 CompanyDetail 代码。当用户单击 listviewItem 时,我的第二个 activity 将显示没有按钮的 CompanyDetail .. 我该如何编码?我是 android 工作室的新手..
public class CompanyDetail extends Activity implements View.OnClickListener {
Button cbtnsave, cbtndelete, cbtnclose;
EditText etcomname, etcomstand, etcomrep;
EditText etcomcont, etcommail;
private int _Company_Id=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_company_detail);
cbtnsave = (Button) findViewById(R.id.cbtnSave);
cbtndelete = (Button) findViewById(R.id.cbtnDelete);
cbtnclose = (Button) findViewById(R.id.cbtnClose);
etcomname = (EditText) findViewById(R.id.eTcomname);
etcomstand = (EditText) findViewById(R.id.eTcomstand);
etcomrep = (EditText) findViewById(R.id.eTcomrep);
etcomcont = (EditText) findViewById(R.id.eTcomcont);
etcommail = (EditText) findViewById(R.id.eTcommail);
_Company_Id=0;
Intent intentc = getIntent();
_Company_Id = intentc.getIntExtra("company_Id", 0);
CompanyCrud ccrud= new CompanyCrud(this);
Company company = new Company();
company = ccrud.getCompanyById(_Company_Id);
etcomname.setText(company.cname);
etcomstand.setText(company.cstanding);
etcomrep.setText(company.crepres);
etcomcont.setText(company.ccontact);
etcommail.setText(company.cemail);
}
public void onClick(View view) {
if (view == findViewById(R.id.cbtnSave)){
CompanyCrud ccrud = new CompanyCrud(this);
Company company= new Company();
company.cname = etcomname.getText().toString();
company.cstanding = etcomstand.getText().toString();
company.crepres = etcomrep.getText().toString();
company.ccontact=etcomcont.getText().toString();
company.cemail=etcommail.getText().toString();
if (_Company_Id==0){
_Company_Id=ccrud.insert(company);
Toast.makeText(this, "New Company Created", Toast.LENGTH_SHORT).show();
} else {
ccrud.update(company);
Toast.makeText(this, "Company Updated", Toast.LENGTH_SHORT).show();
}
}else if (view == findViewById(R.id.cbtnDelete)){
CompanyCrud ccrud = new CompanyCrud(this);
ccrud.delete(_Company_Id);
Toast.makeText(this, "Company Deleted", Toast.LENGTH_SHORT).show();
finish();
}else if ( view == findViewById(R.id.cbtnClose)){
finish();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_company_detail, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
现在这是我的 CompanyDetail 的 Crud 操作代码
public class CompanyCrud {
private DBHelper dbHelper;
public CompanyCrud(Context context) { dbHelper = new DBHelper(context);}
public int insert(Company company){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Company.KEY_cname, company.cname);
values.put(Company.KEY_cstanding, company.cstanding);
values.put(Company.KEY_crepres, company.crepres);
values.put(Company.KEY_ccontact, company.ccontact);
values.put(Company.KEY_cemail, company.cemail);
long company_Id = db.insert(Company.TABLE, null, values);
db.close();
return (int) company_Id;
}
public void delete(int company_Id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete(Company.TABLE,Company.KEY_ID + "=?", new String[]{ String.valueOf(company_Id) });
db.close();
}
public void update(Company company) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Company.KEY_cname, company.cname);
values.put(Company.KEY_cstanding, company.cstanding);
values.put(Company.KEY_crepres, company.crepres);
values.put(Company.KEY_ccontact, company.ccontact);
values.put(Company.KEY_cemail, company.cemail);
db.update(Company.TABLE, values, Company.KEY_ID + "= ?", new String[]{String.valueOf(company.company_ID)});
db.close();
}
public ArrayList<HashMap<String, String>> getCompanytList () {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String selectQuery = "SELECT " +
Company.KEY_ID + "," +
Company.KEY_cname + "," +
Company.KEY_crepres + "," +
Company.KEY_ccontact + "," +
Company.KEY_cemail +
" FROM " + Company.TABLE;
ArrayList<HashMap<String, String>>companyList = new ArrayList<HashMap<String, String>>();
Cursor cursor= db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()){
do{
HashMap<String , String > company = new HashMap<String, String >();
company.put("cid", cursor.getString(cursor.getColumnIndex(Company.KEY_ID)));
company.put("cname", cursor.getString(cursor.getColumnIndex(Company.KEY_cname)));
companyList.add(company);
} while (cursor.moveToNext());
}cursor.close();
db.close();
return companyList;
}
public Company getCompanyById(int cid) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String selectQuery = "SELECT " +
Company.KEY_ID + "," +
Company.KEY_cname + "," +
Company.KEY_crepres + "," +
Company.KEY_ccontact + "," +
Company.KEY_cemail +
" FROM " + Company.TABLE
+ " WHERE " +
Company.KEY_ID + "=?";
int ictrc =0;
Company company = new Company();
Cursor cursor = db.rawQuery(selectQuery, new String[]{ String.valueOf(cid)});
if (cursor.moveToFirst()){
do {
company.company_ID=cursor.getInt(cursor.getColumnIndex(Company.KEY_ID));
company.cstanding=cursor.getString(cursor.getColumnIndex(Company.KEY_cstanding));
company.crepres=cursor.getString(cursor.getColumnIndex(Company.KEY_crepres));
company.ccontact= cursor.getString(cursor.getColumnIndex(Company.KEY_ccontact));
company.cemail = cursor.getString(cursor.getColumnIndex(Company.KEY_cemail));
}while (cursor.moveToNext());
} cursor.close();
db.close();
return company;
}
}
这是 class 文件,我想在其中显示数据,但上面什么也没有,因为我不知道我要做什么。我使用 bundle 寻找答案... putextras ..getextras..我不知道该怎么做以及我要把它放在哪里..
public class DisplayData extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_data);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_display_data, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
卸载并重新安装您的应用程序
这是因为,一旦您的应用程序部署在模拟器或测试设备中,之后如果您对数据库的结构进行任何更改,它不会反映出来并且您会收到错误消息。当你重新安装它时,数据库被创建为一个新的,因此没有错误..!!!
更新
@DerGolem 在上面提到了一条有价值的评论
If you modified the database since it's original creation, then be
sure you have an onUpgrade() method. And that you set the
DATABASE_VERSION constant to a higher number.
感谢@DerGolem 指出,因为我真的不知道这个事实..
我想调用我的 CompanyDetail 以仅显示另一个 activity 上的数据。我想在显示它时将 CompanytDetail 中的按钮隐藏到另一个 activity。这是我的 CompanyDetail 代码。当用户单击 listviewItem 时,我的第二个 activity 将显示没有按钮的 CompanyDetail .. 我该如何编码?我是 android 工作室的新手..
public class CompanyDetail extends Activity implements View.OnClickListener {
Button cbtnsave, cbtndelete, cbtnclose;
EditText etcomname, etcomstand, etcomrep;
EditText etcomcont, etcommail;
private int _Company_Id=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_company_detail);
cbtnsave = (Button) findViewById(R.id.cbtnSave);
cbtndelete = (Button) findViewById(R.id.cbtnDelete);
cbtnclose = (Button) findViewById(R.id.cbtnClose);
etcomname = (EditText) findViewById(R.id.eTcomname);
etcomstand = (EditText) findViewById(R.id.eTcomstand);
etcomrep = (EditText) findViewById(R.id.eTcomrep);
etcomcont = (EditText) findViewById(R.id.eTcomcont);
etcommail = (EditText) findViewById(R.id.eTcommail);
_Company_Id=0;
Intent intentc = getIntent();
_Company_Id = intentc.getIntExtra("company_Id", 0);
CompanyCrud ccrud= new CompanyCrud(this);
Company company = new Company();
company = ccrud.getCompanyById(_Company_Id);
etcomname.setText(company.cname);
etcomstand.setText(company.cstanding);
etcomrep.setText(company.crepres);
etcomcont.setText(company.ccontact);
etcommail.setText(company.cemail);
}
public void onClick(View view) {
if (view == findViewById(R.id.cbtnSave)){
CompanyCrud ccrud = new CompanyCrud(this);
Company company= new Company();
company.cname = etcomname.getText().toString();
company.cstanding = etcomstand.getText().toString();
company.crepres = etcomrep.getText().toString();
company.ccontact=etcomcont.getText().toString();
company.cemail=etcommail.getText().toString();
if (_Company_Id==0){
_Company_Id=ccrud.insert(company);
Toast.makeText(this, "New Company Created", Toast.LENGTH_SHORT).show();
} else {
ccrud.update(company);
Toast.makeText(this, "Company Updated", Toast.LENGTH_SHORT).show();
}
}else if (view == findViewById(R.id.cbtnDelete)){
CompanyCrud ccrud = new CompanyCrud(this);
ccrud.delete(_Company_Id);
Toast.makeText(this, "Company Deleted", Toast.LENGTH_SHORT).show();
finish();
}else if ( view == findViewById(R.id.cbtnClose)){
finish();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_company_detail, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
现在这是我的 CompanyDetail 的 Crud 操作代码
public class CompanyCrud {
private DBHelper dbHelper;
public CompanyCrud(Context context) { dbHelper = new DBHelper(context);}
public int insert(Company company){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Company.KEY_cname, company.cname);
values.put(Company.KEY_cstanding, company.cstanding);
values.put(Company.KEY_crepres, company.crepres);
values.put(Company.KEY_ccontact, company.ccontact);
values.put(Company.KEY_cemail, company.cemail);
long company_Id = db.insert(Company.TABLE, null, values);
db.close();
return (int) company_Id;
}
public void delete(int company_Id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete(Company.TABLE,Company.KEY_ID + "=?", new String[]{ String.valueOf(company_Id) });
db.close();
}
public void update(Company company) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Company.KEY_cname, company.cname);
values.put(Company.KEY_cstanding, company.cstanding);
values.put(Company.KEY_crepres, company.crepres);
values.put(Company.KEY_ccontact, company.ccontact);
values.put(Company.KEY_cemail, company.cemail);
db.update(Company.TABLE, values, Company.KEY_ID + "= ?", new String[]{String.valueOf(company.company_ID)});
db.close();
}
public ArrayList<HashMap<String, String>> getCompanytList () {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String selectQuery = "SELECT " +
Company.KEY_ID + "," +
Company.KEY_cname + "," +
Company.KEY_crepres + "," +
Company.KEY_ccontact + "," +
Company.KEY_cemail +
" FROM " + Company.TABLE;
ArrayList<HashMap<String, String>>companyList = new ArrayList<HashMap<String, String>>();
Cursor cursor= db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()){
do{
HashMap<String , String > company = new HashMap<String, String >();
company.put("cid", cursor.getString(cursor.getColumnIndex(Company.KEY_ID)));
company.put("cname", cursor.getString(cursor.getColumnIndex(Company.KEY_cname)));
companyList.add(company);
} while (cursor.moveToNext());
}cursor.close();
db.close();
return companyList;
}
public Company getCompanyById(int cid) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String selectQuery = "SELECT " +
Company.KEY_ID + "," +
Company.KEY_cname + "," +
Company.KEY_crepres + "," +
Company.KEY_ccontact + "," +
Company.KEY_cemail +
" FROM " + Company.TABLE
+ " WHERE " +
Company.KEY_ID + "=?";
int ictrc =0;
Company company = new Company();
Cursor cursor = db.rawQuery(selectQuery, new String[]{ String.valueOf(cid)});
if (cursor.moveToFirst()){
do {
company.company_ID=cursor.getInt(cursor.getColumnIndex(Company.KEY_ID));
company.cstanding=cursor.getString(cursor.getColumnIndex(Company.KEY_cstanding));
company.crepres=cursor.getString(cursor.getColumnIndex(Company.KEY_crepres));
company.ccontact= cursor.getString(cursor.getColumnIndex(Company.KEY_ccontact));
company.cemail = cursor.getString(cursor.getColumnIndex(Company.KEY_cemail));
}while (cursor.moveToNext());
} cursor.close();
db.close();
return company;
}
}
这是 class 文件,我想在其中显示数据,但上面什么也没有,因为我不知道我要做什么。我使用 bundle 寻找答案... putextras ..getextras..我不知道该怎么做以及我要把它放在哪里..
public class DisplayData extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_data);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_display_data, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
卸载并重新安装您的应用程序
这是因为,一旦您的应用程序部署在模拟器或测试设备中,之后如果您对数据库的结构进行任何更改,它不会反映出来并且您会收到错误消息。当你重新安装它时,数据库被创建为一个新的,因此没有错误..!!!
更新
@DerGolem 在上面提到了一条有价值的评论
If you modified the database since it's original creation, then be sure you have an onUpgrade() method. And that you set the DATABASE_VERSION constant to a higher number.
感谢@DerGolem 指出,因为我真的不知道这个事实..