package com.tang.commodityadmin.activity;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.app.Activity;
import android.app.Dialog;
import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.icu.text.DateFormat;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.Toast;
import com.google.android.material.snackbar.Snackbar;
import com.google.gson.Gson;
import com.jaredrummler.materialspinner.MaterialSpinner;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.Request;
import com.tang.commodityadmin.Constants;
import com.tang.commodityadmin.R;
import com.tang.commodityadmin.adapter.GoodsAdapter;
import com.tang.commodityadmin.dialog.ConfirmDialog;
import com.tang.commodityadmin.dialog.LoadingDialog;
import com.tang.commodityadmin.entity.Goods;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.BitmapCallback;
import com.zhy.http.okhttp.callback.StringCallback;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Date;
public class GoodsInfoActivity extends AppCompatActivity implements View.OnClickListener {
private EditText goodsNameText,goodsBrandText,goodsIntroductionText,goodsSellingPriceText,goodsCostPriceText,goodsStockText;
private ImageView goodsNameClearImage,goodsBrandClearImage,goodsIntroductionClearImage,goodsImageView;
private Button goodsSubmitBtn,goodsEditBtn,goodsDeleteBtn;
private ImageButton goodsCancelBtn;
private Dialog dialog;
private LoadingDialog loadingDialog;
private ConfirmDialog confirmDialog;
private final boolean[] isProcessed={false};
private MaterialSpinner goodsCategorySpinner,goodsUnitSpinner;
private Uri imageUri;
public static File tempFile;
private String filename;
private Goods goods;
private String type;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_goods_info);
goods=new Goods();
isProcessed[0]=false;
initDialog();
loadingDialog.show();
Log.i("LoadingDialog","show");
initView();
}
@Override
protected void onStart() {
super.onStart();
new Thread(new Runnable() {
@Override
public void run() {
while (!isProcessed[0]){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
loadingDialog.dismiss();
}
}).start();
handle();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
/**
* 进行增加获取编辑
*
*/
private void handle(){
Bundle bundle=getIntent().getExtras();
try {
type=bundle.get("type").toString();
}
catch (Exception e){
Log.e("GoodsInfoActivity",e.getMessage());
finish();
}
if (type!=null){
if (type.equals("add")){
goodsEditBtn.setVisibility(View.GONE);
goodsDeleteBtn.setVisibility(View.GONE);
DateFormat sdf = new android.icu.text.SimpleDateFormat("yyMMddhhmmss");
String no = "SP"+sdf.format(new Date());
goods.setNo(no);
isProcessed[0]=true;
}
else if(type.equals("edit")){
goods=(Goods)bundle.get("goods");
uploadGoodsImage();
goodsNameText.setText(goods.getName());
goodsBrandText.setText(goods.getBrandName());
goodsUnitSpinner.setSelectedIndex(Arrays.binarySearch(Constants.unit,goods.getUnit()));
goodsCategorySpinner.setSelectedIndex(Arrays.binarySearch(Constants.category,goods.getCategory()));
goodsSellingPriceText.setText(goods.getSellingPrice()+"");
goodsCostPriceText.setText(goods.getCostPrice()+"");
goodsIntroductionText.setText(goods.getIntroduction());
goodsStockText.setText(goods.getStock()+"");
ableView(false);
isProcessed[0]=true;
}
else {
finish();
}
}
}
private void uploadGoodsImage() {
String url=Constants.BASE_URL+"/goods/image";
OkHttpUtils
.get()
.url(url)
.addParams("fileName",goods.getNo())
.build()
.execute(new BitmapCallback() {
@Override
public void onError(Request request, Exception e) {
GoodsAdapter.handleError(GoodsInfoActivity.this,goodsImageView);
}
@Override
public void onResponse(Bitmap response) {
if(response==null){
GoodsAdapter.handleError(GoodsInfoActivity.this,goodsImageView);
}
else{
goodsImageView.setImageBitmap(response);
}
}
});
}
private void initView() {
// TODO Auto-generated method stub
goodsNameText = findViewById(R.id.edit_text_goods_name);
goodsBrandText=findViewById(R.id.edit_text_goods_brand);
goodsIntroductionText=findViewById(R.id.edit_text_goods_introduction);
goodsSellingPriceText=findViewById(R.id.edit_text_goods_selling_price);
goodsCostPriceText=findViewById(R.id.edit_text_goods_cost_price);
goodsStockText=findViewById(R.id.edit_text_goods_stock_name);
goodsNameClearImage=findViewById(R.id.image_goods_name_clear);
goodsBrandClearImage=findViewById(R.id.image_goods_brand_clear);
goodsIntroductionClearImage=findViewById(R.id.image_goods_introduction_clear);
goodsImageView=findViewById(R.id.image_goods_image_upload);
goodsUnitSpinner=findViewById(R.id.spinner_goods_unit);
goodsCategorySpinner = findViewById(R.id.spinner_goods_category);
goodsSubmitBtn=findViewById(R.id.btn_submit_goods);
goodsEditBtn=findViewById(R.id.btn_edit_goods);
goodsDeleteBtn=findViewById(R.id.btn_delete_goods);
goodsCancelBtn=findViewById(R.id.btn_cancel_goods);
// 添加清除监听器
addTextListener(goodsNameText,goodsNameClearImage);
addTextListener(goodsBrandText,goodsBrandClearImage);
addTextListener(goodsIntroductionText,goodsIntroductionClearImage);
addTextListener(goodsSellingPriceText,null);
addTextListener(g
没有合适的资源?快使用搜索试试~ 我知道了~
基于Android商品管理系统.zip
共125个文件
xml:51个
png:26个
java:23个
0 下载量 49 浏览量
2024-08-23
09:46:13
上传
评论
收藏 5.56MB ZIP 举报
温馨提示
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无VIP,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
资源推荐
资源详情
资源评论
收起资源包目录
基于Android商品管理系统.zip (125个子文件)
gradlew.bat 3KB
loading.gif 16KB
.gitignore 225B
.gitignore 47B
.gitignore 6B
build.gradle 2KB
build.gradle 500B
settings.gradle 289B
gradlew 6KB
fastjson-1.2.31.jar 452KB
gradle-wrapper.jar 58KB
GoodsInfoActivity.java 25KB
MainActivity.java 16KB
LoginActivity.java 9KB
OrderInfoActivity.java 7KB
GoodsAdapter.java 6KB
ClientAdapter.java 5KB
ClientInfoActivity.java 5KB
GoodsFragment.java 5KB
ClientFragment.java 4KB
OrderFragment.java 4KB
OrderAdapter.java 4KB
OrderDetailAdapter.java 3KB
LoadingDialog.java 3KB
ConfirmDialog.java 3KB
Goods.java 2KB
OrderDetail.java 1KB
Client.java 1KB
Order.java 1KB
User.java 909B
ExampleInstrumentedTest.java 760B
Constants.java 721B
UserFragment.java 673B
ExampleUnitTest.java 384B
icon_my.png 312KB
background.png 227KB
keqing.png 21KB
undefined.png 8KB
icon_undefined.png 8KB
icon.png 4KB
icon_client.png 3KB
icon_goods.png 3KB
client_undefined.png 3KB
client_undefined.png 3KB
icon_goods_dark.png 3KB
icon_client_dark.png 3KB
icon_upload.png 3KB
icon_about_us.png 3KB
icon_protocol.png 3KB
icon_message.png 2KB
icon_order.png 2KB
icon_user.png 2KB
icon_order_dark.png 2KB
icon_user_dark.png 2KB
icon_info.png 2KB
icon_loading.png 2KB
icon_delete.png 821B
icon_back.png 353B
icon_back1.png 343B
icon_add.png 201B
proguard-rules.pro 750B
gradle.properties 1KB
gradle-wrapper.properties 232B
yuan_shen_font.ttf 6.9MB
ic_launcher_round.webp 8KB
ic_launcher_round.webp 6KB
ic_launcher_round.webp 4KB
ic_launcher.webp 4KB
ic_launcher_round.webp 3KB
ic_launcher.webp 3KB
ic_launcher.webp 2KB
ic_launcher_round.webp 2KB
ic_launcher.webp 1KB
ic_launcher.webp 982B
activity_goods_info.xml 27KB
activity_order_info.xml 14KB
activity_main.xml 12KB
activity_client_info.xml 10KB
activity_login.xml 8KB
misc.xml 6KB
ic_launcher_background.xml 5KB
item_goods.xml 4KB
dialog_confirm.xml 3KB
item_order.xml 3KB
AndroidManifest.xml 3KB
item_order_detail.xml 3KB
themes.xml 3KB
item_client.xml 2KB
navigationview_header.xml 2KB
menu_navigation.xml 2KB
ic_launcher_foreground.xml 2KB
fragment_goods.xml 1KB
fragment_order.xml 1KB
fragment_client.xml 1KB
dialog_upload.xml 1KB
themes.xml 836B
button_click.xml 792B
button_dialog_ok.xml 759B
button_dialog_cancel.xml 759B
gradle.xml 746B
共 125 条
- 1
- 2
资源评论
专家大圣
- 粉丝: 2059
- 资源: 7730
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript及Python的HTML与TypeScript综合应用专业实习项目设计源码
- 西门子Siemens PLc程序,TiA博途V15.1 V16 V17版冷热水恒压供水系统,变频器控制,模拟量输入和输出处理
- 光半学院 电子工程类(1)班 左君鹏c语言学习笔记(第一阶段
- Comsol无偏振转吸收器多重干涉理论 包含透反射计算,S参数特殊处理,Matlab脚本等
- 基于Java后端技术栈的装修软件设计源码
- 基于JavaScript的music_web在线音乐网站开发源码记录
- torchvision-0.18.1+cu121-cp310-cp310-win-amd64.whl
- 基于Tornado和WebSocket的HTML5围棋游戏ChainForPerlsWeb设计源码
- 基于fastapi+uniapp+langchain+rag的AI私域知识库Vue设计源码
- 基于Java语言的经典游戏设计源码合集
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功