1.測試有關說明
1.1測試名稱與內容
發布過程
1.2測試用例
- 【發布過程】:用戶登錄之后,進入“我的”個人主頁,點擊“發布”按鈕,協調數據庫操作,實現發布商品的功能。
public class UploadItemActivity extends AppCompatActivity {
public static final int TAKE_PHOTO = 1;
public static final int CHOOSE_PHOTO = 2;
private ImageView picture;
private Uri imageUri;
private DatabaseHelper dbHelper;
private Spinner sp;
private ContentValues values=new ContentValues();
final SQLiteDatabase db = dbHelper.getWritableDatabase();
private void displayImage(String imagePath) {//同時把圖片加載到數據庫
if (imagePath != null) {
Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
picture.setImageBitmap(bitmap);
values.put("image",baos.toByteArray());
db.insert("iteminfo",null,values);
} else {
Toast.makeText(this, "failed to get image", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.upload_item);
picture = (ImageView) findViewById(R.id.item_photo);
Button finish_upload = (Button) findViewById(R.id.finish);
Button chooseFromAlbum = (Button) findViewById(R.id.choose_photo);
Button takePhoto = (Button) findViewById(R.id.take_photo);
String[] ctype = new String[]{"生活用品", "學習用品", "電子產品", "體育用品"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ctype); //創建一個數組適配器
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //設置下拉列表框的下拉選項樣式
Spinner spinner = (Spinner) super.findViewById(R.id.item_style);
spinner.setAdapter(adapter);
sp = (Spinner) findViewById(R.id.item_style);
final String kind = (String) sp.getSelectedItem();
finish_upload.setOnClickListener(new View.OnClickListener(){
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onClick(View v){ //上傳商品信息插入到數據庫
EditText title=(EditText)findViewById(R.id.item_name);
EditText price=(EditText)findViewById(R.id.item_price);
EditText intro=(EditText)findViewById(R.id.item_introduction);
EditText contact=(EditText)findViewById(R.id.contact);
//在登錄功能中給post_userid賦值 values.put("userId",post_userid);
values.put("title",title.getText().toString());
values.put("userId",post_userid);
values.put("kind", kind);
values.put("price",price.getText().toString());
values.put("contact",contact.getText().toString());
values.put("intro",intro.getText().toString());
//bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
// cv.put("pic", os.toByteArray());
db.insert("iteminfo",null,values);
Toast.makeText(getApplicationContext(), "發布成功", Toast.LENGTH_SHORT).show();
MyItems.actionStart(UploadItemActivity.this);
}
});
- 【查詢過程】查詢數據庫中存儲的物品信息,並顯示
public class MyItems extends AppCompatActivity {
String TABLENAME = "iteminfo";
byte[] imagedata;
Bitmap imagebm; //圖片類型必須是Bitmap
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_item);
final DatabaseHelper dbtest = new DatabaseHelper(this);
final Intent intent = getIntent();
final SQLiteDatabase db = dbtest.getWritableDatabase();
ImageView image = (ImageView)findViewById(R.id.item_photo);
TextView title = (TextView) findViewById(R.id.item_name);
TextView price = (TextView)findViewById(R.id.item_price);
TextView intro = (TextView) findViewById(R.id.item_introduce);
TextView contact = (TextView) findViewById(R.id.contact);
Button button_return = (Button) findViewById(R.id.button_return);
Cursor cursor = db.query(TABLENAME,null,"id=?",new String[]{intent.getStringExtra("id")},null,null,null,null); // 根據接收到的id進行數據庫查詢
Log.i("商品的id是",intent.getStringExtra("id"));
if (cursor.moveToFirst()){
while (!cursor.isAfterLast()){
imagedata = cursor.getBlob(6);
imagebm = BitmapFactory.decodeByteArray(imagedata, 0, imagedata.length);
image.setImageBitmap(imagebm);//把圖片從數據庫加載到image
title.setText(cursor.getString(2));
intro.setText(cursor.getString(4));
price.setText(cursor.getString(5));
contact.setText(cursor.getString(7));
cursor.moveToNext();
}
cursor.close();
}
button_return.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UploadItemActivity.actionStart(MyItems.this);
}
});
}
public static void actionStart(Context context){
Intent intent = new Intent(context, MyItems.class);
context.startActivity(intent);
}
}