公共品牌动态;我的产品
This commit is contained in:
parent
f4af131dfb
commit
28d7ec0a4b
@ -143,6 +143,21 @@
|
||||
android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.brand.PublicBrandDynamicsActivity"
|
||||
android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.brand.PublicBrandDynamicsDetailActivity"
|
||||
android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.brand.MyProductActivity"
|
||||
android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
|
||||
<activity
|
||||
|
@ -0,0 +1,91 @@
|
||||
package com.tairui.industrial_operation.ui.brand;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
import com.tairui.industrial_operation.R;
|
||||
import com.tairui.industrial_operation.base.BaseActivity;
|
||||
import com.tairui.industrial_operation.databinding.ActivityMyProductBinding;
|
||||
import com.tairui.industrial_operation.ui.brand.entity.MyProductEntity;
|
||||
import com.tairui.industrial_operation.util.AppUtil;
|
||||
import com.tairui.industrial_operation.util.SingleClickListener;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
public class MyProductActivity extends BaseActivity<ActivityMyProductBinding> {
|
||||
|
||||
private MyProductAdapter adapter;
|
||||
|
||||
@Override
|
||||
protected Class<ActivityMyProductBinding> getBindingClass() {
|
||||
return ActivityMyProductBinding.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initStatusBar() {
|
||||
ImmersionBar.with(this).fitsSystemWindows(false).transparentStatusBar()
|
||||
.statusBarDarkFont(true).init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onQueryArguments() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindListener() {
|
||||
binding.btnBack.setOnClickListener(new SingleClickListener() {
|
||||
@Override
|
||||
protected void onSingleClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFindView(Bundle savedInstanceState) {
|
||||
binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
adapter = new MyProductAdapter();
|
||||
binding.refreshRecycler.setAdapter(adapter);
|
||||
binding.refreshRecycler.setEnableRefresh(false);
|
||||
binding.refreshRecycler.setNoMoreData(true);
|
||||
adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onApplyData() {
|
||||
requestData();
|
||||
}
|
||||
|
||||
private void requestData() {
|
||||
String dataStr = AppUtil.loadJsonFromRaw(mContext, R.raw.my_product);
|
||||
Gson gson = new Gson();
|
||||
List<MyProductEntity> data = gson.fromJson(dataStr, new TypeToken<List<MyProductEntity>>() {
|
||||
}.getType());
|
||||
adapter.setNewData(data);
|
||||
binding.refreshRecycler.showContent();
|
||||
}
|
||||
|
||||
private class MyProductAdapter extends BaseQuickAdapter<MyProductEntity, BaseViewHolder> {
|
||||
|
||||
public MyProductAdapter() {
|
||||
super(R.layout.item_my_product);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(@NonNull BaseViewHolder holder, MyProductEntity entity) {
|
||||
holder.setImageResource(R.id.image, AppUtil.getDrawableId(entity.getImgRes()));
|
||||
holder.setText(R.id.name, entity.getName());
|
||||
holder.setText(R.id.status, entity.getStatus().equals("0") ? "已停售" : "在售中");
|
||||
holder.setTextColor(R.id.status, getResColor(entity.getStatus().equals("0") ? R.color.color_txt_red : R.color.color_txt_green));
|
||||
holder.setText(R.id.price, "¥" + entity.getPrice());
|
||||
}
|
||||
}
|
||||
}
|
@ -3,6 +3,10 @@ package com.tairui.industrial_operation.ui.brand;
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
import com.tairui.industrial_operation.base.BaseActivity;
|
||||
import com.tairui.industrial_operation.databinding.ActivityPublicBrandBinding;
|
||||
import com.tairui.industrial_operation.util.IntentUtil;
|
||||
import com.tairui.industrial_operation.util.SingleClickListener;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
public class PublicBrandActivity extends BaseActivity<ActivityPublicBrandBinding> {
|
||||
@Override
|
||||
@ -15,4 +19,20 @@ public class PublicBrandActivity extends BaseActivity<ActivityPublicBrandBinding
|
||||
ImmersionBar.with(this).fitsSystemWindows(false).transparentStatusBar()
|
||||
.statusBarDarkFont(true).init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindListener() {
|
||||
binding.dt.setOnClickListener(new SingleClickListener() {
|
||||
@Override
|
||||
protected void onSingleClick(View v) {
|
||||
IntentUtil.startActivity(mContext, PublicBrandDynamicsActivity.class);
|
||||
}
|
||||
});
|
||||
binding.wdcp.setOnClickListener(new SingleClickListener() {
|
||||
@Override
|
||||
protected void onSingleClick(View v) {
|
||||
IntentUtil.startActivity(mContext, MyProductActivity.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,94 @@
|
||||
package com.tairui.industrial_operation.ui.brand;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
import com.tairui.industrial_operation.R;
|
||||
import com.tairui.industrial_operation.base.BaseActivity;
|
||||
import com.tairui.industrial_operation.databinding.ActivityPublicBrandDynamicsBinding;
|
||||
import com.tairui.industrial_operation.ui.brand.entity.PublicBrandDynamicsEntity;
|
||||
import com.tairui.industrial_operation.util.AppUtil;
|
||||
import com.tairui.industrial_operation.util.IntentUtil;
|
||||
import com.tairui.industrial_operation.util.SingleClickListener;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
public class PublicBrandDynamicsActivity extends BaseActivity<ActivityPublicBrandDynamicsBinding> {
|
||||
|
||||
private PublicBrandDynamicsAdapter adapter;
|
||||
|
||||
@Override
|
||||
protected Class<ActivityPublicBrandDynamicsBinding> getBindingClass() {
|
||||
return ActivityPublicBrandDynamicsBinding.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initStatusBar() {
|
||||
ImmersionBar.with(this).fitsSystemWindows(false).transparentStatusBar()
|
||||
.statusBarDarkFont(true).init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onQueryArguments() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindListener() {
|
||||
binding.btnBack.setOnClickListener(new SingleClickListener() {
|
||||
@Override
|
||||
protected void onSingleClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFindView(Bundle savedInstanceState) {
|
||||
binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
adapter = new PublicBrandDynamicsAdapter();
|
||||
binding.refreshRecycler.setAdapter(adapter);
|
||||
binding.refreshRecycler.setEnableRefresh(false);
|
||||
binding.refreshRecycler.setNoMoreData(true);
|
||||
adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putSerializable("data", adapter.getData().get(i));
|
||||
IntentUtil.startActivity(mContext, PublicBrandDynamicsDetailActivity.class, bundle);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onApplyData() {
|
||||
requestData();
|
||||
}
|
||||
|
||||
private void requestData() {
|
||||
String dataStr = AppUtil.loadJsonFromRaw(mContext, R.raw.public_brand_dynamics);
|
||||
Gson gson = new Gson();
|
||||
List<PublicBrandDynamicsEntity> data = gson.fromJson(dataStr, new TypeToken<List<PublicBrandDynamicsEntity>>() {
|
||||
}.getType());
|
||||
adapter.setNewData(data);
|
||||
binding.refreshRecycler.showContent();
|
||||
}
|
||||
|
||||
private class PublicBrandDynamicsAdapter extends BaseQuickAdapter<PublicBrandDynamicsEntity, BaseViewHolder> {
|
||||
|
||||
public PublicBrandDynamicsAdapter() {
|
||||
super(R.layout.item_public_brand_dynamics);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(@NonNull BaseViewHolder holder, PublicBrandDynamicsEntity entity) {
|
||||
holder.setText(R.id.tvTitle, entity.getTitle());
|
||||
holder.setText(R.id.tvContent, entity.getContent());
|
||||
holder.setText(R.id.tvDate, entity.getDate());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.tairui.industrial_operation.ui.brand;
|
||||
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
import com.tairui.industrial_operation.base.BaseActivity;
|
||||
import com.tairui.industrial_operation.databinding.ActivityPublicBrandDynamicsDetailBinding;
|
||||
import com.tairui.industrial_operation.ui.brand.entity.PublicBrandDynamicsEntity;
|
||||
import com.tairui.industrial_operation.util.SingleClickListener;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
public class PublicBrandDynamicsDetailActivity extends BaseActivity<ActivityPublicBrandDynamicsDetailBinding> {
|
||||
|
||||
private PublicBrandDynamicsEntity mData;
|
||||
|
||||
@Override
|
||||
protected Class<ActivityPublicBrandDynamicsDetailBinding> getBindingClass() {
|
||||
return ActivityPublicBrandDynamicsDetailBinding.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initStatusBar() {
|
||||
ImmersionBar.with(this).fitsSystemWindows(false).transparentStatusBar().statusBarDarkFont(true).init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onQueryArguments() {
|
||||
mData = (PublicBrandDynamicsEntity) getIntent().getSerializableExtra("data");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFindView(Bundle savedInstanceState) {
|
||||
setText(binding.tvTitle, mData.getTitle());
|
||||
setText(binding.tvDate, "发布日期:" + mData.getDate());
|
||||
setText(binding.tvContent, mData.getContent());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindListener() {
|
||||
binding.btnBack.setOnClickListener(new SingleClickListener() {
|
||||
@Override
|
||||
protected void onSingleClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package com.tairui.industrial_operation.ui.brand.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class MyProductEntity implements Serializable {
|
||||
|
||||
private String imgRes;
|
||||
|
||||
private String name;
|
||||
|
||||
private String price;
|
||||
|
||||
private String status; //0-停售,1-在售中
|
||||
|
||||
public String getImgRes() {
|
||||
return imgRes;
|
||||
}
|
||||
|
||||
public void setImgRes(String imgRes) {
|
||||
this.imgRes = imgRes;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
||||
public void setPrice(String price) {
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.tairui.industrial_operation.ui.brand.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class PublicBrandDynamicsEntity implements Serializable {
|
||||
|
||||
private String title;
|
||||
private String content;
|
||||
private String date;
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(String date) {
|
||||
this.date = date;
|
||||
}
|
||||
}
|
@ -1,35 +1,69 @@
|
||||
package com.tairui.industrial_operation.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.reflect.Field;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.tairui.industrial_operation.R;
|
||||
import com.tairui.industrial_operation.ui.photoview.PhotoViewActivty;
|
||||
import com.tairui.industrial_operation.widget.loading.LoadingDialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.RawRes;
|
||||
|
||||
public class AppUtil {
|
||||
|
||||
public static LoadingDialog getLoading(Context context) {
|
||||
return getLoading(context, 1);
|
||||
}
|
||||
public static LoadingDialog getLoading(Context context) {
|
||||
return getLoading(context, 1);
|
||||
}
|
||||
|
||||
public static LoadingDialog getLoading(Context context, int style) {
|
||||
if (null != context) {
|
||||
LoadingDialog loading = new LoadingDialog(context);
|
||||
loading.setLoadStyle(style); //STYLE_RING = 0; STYLE_LINE = 1;
|
||||
loading.setLoadingText(null);
|
||||
loading.setInterceptBack(false);
|
||||
return loading;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public static LoadingDialog getLoading(Context context, int style) {
|
||||
if (null != context) {
|
||||
LoadingDialog loading = new LoadingDialog(context);
|
||||
loading.setLoadStyle(style); //STYLE_RING = 0; STYLE_LINE = 1;
|
||||
loading.setLoadingText(null);
|
||||
loading.setInterceptBack(false);
|
||||
return loading;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static void startPhotoView(Context context, ArrayList<String> imgs){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt("index", 0);
|
||||
bundle.putStringArrayList("imgs", imgs);
|
||||
IntentUtil.startActivity(context, PhotoViewActivty.class, bundle);
|
||||
}
|
||||
public static void startPhotoView(Context context, ArrayList<String> imgs) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt("index", 0);
|
||||
bundle.putStringArrayList("imgs", imgs);
|
||||
IntentUtil.startActivity(context, PhotoViewActivty.class, bundle);
|
||||
}
|
||||
|
||||
public static String loadJsonFromRaw(Context context, @RawRes int rawRes) {
|
||||
String jsonString = null;
|
||||
try {
|
||||
InputStream inputStream = context.getResources().openRawResource(rawRes);
|
||||
int size = inputStream.available();
|
||||
byte[] buffer = new byte[size];
|
||||
inputStream.read(buffer);
|
||||
inputStream.close();
|
||||
jsonString = new String(buffer, StandardCharsets.UTF_8);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return jsonString;
|
||||
}
|
||||
|
||||
// 根据图片名称获取本地资源ID
|
||||
public static int getDrawableId(String imageName) {
|
||||
try {
|
||||
// 通过反射获取资源类的字段
|
||||
Field field = R.mipmap.class.getField(imageName);
|
||||
return field.getInt(null);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
// 若没找到资源,返回默认图片
|
||||
return R.mipmap.ic_launcher;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
12
app/src/main/res/drawable/bg_container_gray_raduis_30.xml
Normal file
12
app/src/main/res/drawable/bg_container_gray_raduis_30.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
<corners
|
||||
android:bottomLeftRadius="30dp"
|
||||
android:bottomRightRadius="30dp"
|
||||
android:topLeftRadius="30dp"
|
||||
android:topRightRadius="30dp" />
|
||||
|
||||
<solid android:color="@color/color_txt_hint" />
|
||||
</shape>
|
56
app/src/main/res/layout/activity_my_product.xml
Normal file
56
app/src/main/res/layout/activity_my_product.xml
Normal file
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/color_f8f8f8">
|
||||
|
||||
<com.tairui.industrial_operation.widget.statusbar.StatusBarHeightView
|
||||
android:id="@+id/statusbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:layout_constraintTop_toBottomOf="@id/statusbar">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btnBack"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:padding="4dp"
|
||||
android:src="@mipmap/ic_back_black"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="我的产品"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.tairui.industrial_operation.widget.RefreshRecyclerView
|
||||
android:id="@+id/refreshRecycler"
|
||||
app:layout_constraintTop_toBottomOf="@id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_height="0dp" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -3,6 +3,7 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@color/color_f8f8f8"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<View
|
||||
@ -217,51 +218,52 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:background="@drawable/bg_container_white_raduis_10"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_container_white_raduis_10"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left|center_vertical"
|
||||
android:text="品牌服务"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left|center_vertical"
|
||||
android:text="品牌服务"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right|center_vertical"
|
||||
android:drawableRight="@mipmap/ic_arrow_right_gray"
|
||||
android:text="查看更多"
|
||||
android:textColor="@color/color_txt_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right|center_vertical"
|
||||
android:drawableRight="@mipmap/ic_arrow_right_gray"
|
||||
android:text="查看更多"
|
||||
android:textColor="@color/color_txt_label"
|
||||
android:textSize="14sp" />
|
||||
</FrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:src="@mipmap/pic_public_brand_5" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:src="@mipmap/pic_public_brand_6" />
|
||||
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:src="@mipmap/pic_public_brand_5" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:src="@mipmap/pic_public_brand_6" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
56
app/src/main/res/layout/activity_public_brand_dynamics.xml
Normal file
56
app/src/main/res/layout/activity_public_brand_dynamics.xml
Normal file
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/color_f8f8f8">
|
||||
|
||||
<com.tairui.industrial_operation.widget.statusbar.StatusBarHeightView
|
||||
android:id="@+id/statusbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:layout_constraintTop_toBottomOf="@id/statusbar">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btnBack"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:padding="4dp"
|
||||
android:src="@mipmap/ic_back_black"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="公共品牌动态"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.tairui.industrial_operation.widget.RefreshRecyclerView
|
||||
android:id="@+id/refreshRecycler"
|
||||
app:layout_constraintTop_toBottomOf="@id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_height="0dp" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/color_f8f8f8">
|
||||
|
||||
<com.tairui.industrial_operation.widget.statusbar.StatusBarHeightView
|
||||
android:id="@+id/statusbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:layout_constraintTop_toBottomOf="@id/statusbar">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btnBack"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:padding="4dp"
|
||||
android:src="@mipmap/ic_back_black"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/toolbar">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="《耿马农产品公共品牌使用规范》" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:textColor="@color/color_txt_label"
|
||||
android:textSize="14sp"
|
||||
tools:text="发布日期:2025.01.01" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:lineSpacingExtra="2dp"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="14sp"
|
||||
tools:text="发布日期:2025.01.01" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
70
app/src/main/res/layout/item_my_product.xml
Normal file
70
app/src/main/res/layout/item_my_product.xml
Normal file
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:background="@drawable/bg_container_white_raduis_10"
|
||||
android:padding="12dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/image"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="在售中"
|
||||
android:textColor="@color/color_txt_green"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/image" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="12dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:text="耿马普罗旺斯西红柿沙瓤番茄甄选番茄苗"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintLeft_toRightOf="@id/image"
|
||||
app:layout_constraintRight_toLeftOf="@id/status"
|
||||
app:layout_constraintTop_toTopOf="@id/image" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/price"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:text="¥4.50"
|
||||
android:textColor="@color/color_txt_green"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="@id/image"
|
||||
app:layout_constraintLeft_toRightOf="@id/image" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_container_gray_raduis_30"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingRight="16dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:text="取消授权"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/image"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
48
app/src/main/res/layout/item_public_brand_dynamics.xml
Normal file
48
app/src/main/res/layout/item_public_brand_dynamics.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:background="@drawable/bg_container_white_raduis_10"
|
||||
android:padding="12dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:text="《耿马农产品公共品牌使用规范》"
|
||||
android:textColor="@color/color_txt_black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxLines="3"
|
||||
android:ellipsize="end"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="一、总则为规范“耿品”公共品牌(以下简称“品牌”)的使用与管理,维护品牌形象与声誉,保障消费者权益,促..."
|
||||
android:textColor="@color/color_txt_label"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvTitle" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="2025.01.01"
|
||||
android:textColor="@color/color_txt_label"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvContent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
BIN
app/src/main/res/mipmap-xxhdpi/pic_my_product_1.png
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/pic_my_product_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/pic_my_product_2.png
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/pic_my_product_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
14
app/src/main/res/raw/my_product.json
Normal file
14
app/src/main/res/raw/my_product.json
Normal file
@ -0,0 +1,14 @@
|
||||
[
|
||||
{
|
||||
"name": "耿马普罗旺斯西红柿沙瓤番茄甄选番茄苗",
|
||||
"imgRes": "pic_my_product_1",
|
||||
"price": "4.50",
|
||||
"status": "1"
|
||||
},
|
||||
{
|
||||
"name": "紫皮长茄子新鲜蔬菜细茄子长条茄子杭茄",
|
||||
"imgRes": "pic_my_product_2",
|
||||
"price": "4.50",
|
||||
"status": "1"
|
||||
}
|
||||
]
|
17
app/src/main/res/raw/public_brand_dynamics.json
Normal file
17
app/src/main/res/raw/public_brand_dynamics.json
Normal file
@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"title": "《耿马农产品公共品牌使用规范》",
|
||||
"content": "一、总则为规范“耿品”公共品牌(以下简称“品牌”)的使用与管理,维护品牌形象与声誉,保障消费者权益,促进耿马县农产品高质量发展,特制定本规范。二、品牌定位“耿品”品牌代表耿马县出产的,具有优良品质、鲜明地域特色及生态、健康、可信赖特质的农产品整体形象。三、使用原则1.自愿申请: 符合条件的主体自愿申请使用。2.授权许可: 经品牌管理机构审核授权后方可使用。3.统一管理: 遵循品牌标识系统、品质标准及宣传规范。4.权责一致: 使用者享有品牌权益,承担维护责任。四、申请主体资格1.在耿马县依法注册登记,从事相关农产品生产、加工、经营的企业、合作社、家庭农场等。2.具备合法有效的生产经营资质。3.产品符合国家及行业相关质量标准、安全规范。4.近三年内无重大质量安全、诚信经营不良记录。五、产品准入标准1.产地要求: 主要原料产自耿马县行政区域内。2.品质要求: 符合“耿品”品牌制定的具体产品品质标准(如理化指标、感官要求等)。3.认证要求: 鼓励通过绿色食品、有机产品、地理标志等认证。4包装要求: 使用经审核备案的包装设计,清晰标注品牌授权标识、产品信息、生产者信息、溯源信息等。六、品牌标识使用规范1.标准展示: 严格按照《“耿品”品牌视觉识别系统手册》规定使用标识,包括图形、字体、色彩、组合方式等,不得擅自更改。2.突出位置: 品牌主标识应在产品包装、宣传材料显著位置清晰展示。3.禁用情形: 不得用于未授权产品、不合格产品及可能损害品牌声誉的场合。七、使用流程1.申请: 提交申请表、主体资质证明、产品质检报告等材料。2.审核: 品牌管理机构组织材料审核与实地考察。3.签约: 审核通过后签订《“耿品”品牌使用授权协议》。4.授权: 颁发授权证书,明确授权产品范围、有效期。5.续期: 有效期届满前申请续期,重新审核。八、使用者义务1.维护品牌形象,保证产品质量安全。2.规范使用品牌标识,接受监督管理。3.建立产品溯源体系,确保来源可追溯。4.及时报告重大变更(如生产条件、产品标准变更)。5.配合品牌宣传推广活动。九、监督管理1.日常监管: 品牌管理机构进行不定期抽检和市场巡查。2.社会监督: 接受消费者、媒体等社会监督。3.违规处理: 对违反本规范或授权协议者,视情节轻重给予警告、责令整改、暂停授权直至撤销授权处理,并公告。十、退出机制授权期满未续期、主动申请退出、被撤销授权或主体资格丧失时,须立即停止使用品牌标识及相关宣传,并配合后续处理。十一、附则1.本规范由耿马县“耿品”品牌管理机构负责解释。2.本规范自发布之日起施行。",
|
||||
"date": "2025.01.01"
|
||||
},
|
||||
{
|
||||
"title": "《云南省 “绿色食品牌” 品牌目录管理办法》",
|
||||
"content": "该办法自 2021 年 9 月 1 日起施行,明确了云南省 “绿色食品牌” 品牌目录相关事宜。其中规定,申报产品为食用农产品的,应当获得绿色食品、有机农产品、良好农业规范(GAP)认证之一且在有效期内,或获得不低于绿色食品质量认证要求的其他质量或管理体系认证,才有资格申报品牌目录。入选品牌目录的品牌经云南省绿色食品发展中心授权后,许可使用云南省 “绿色食品牌” 统一形象标识。若违规使用形象标识,将被退出目录,且三年内不得再次申报。",
|
||||
"date": "2021.09.01"
|
||||
},
|
||||
{
|
||||
"title": "《云南省绿色食品牌形象标识管理办法(试行)》",
|
||||
"content": "该办法自 2021 年 1 月 18 日起实施,规定云南省 “绿色食品牌” 形象标识由云南省绿色食品发展中心依法申请全类商标注册,受法律保护。获得云南省 “绿色食品牌” 名品名企表彰的生产经营主体等可优先获得使用授权。形象标识经授权后,由使用主体自行印制或加贴使用,使用过程中不得更改图案、色相,但图形大小可按比例缩放。若不符合规定使用,或产地环境受污染、产品质量不合格等,不得继续使用该形象标识,还将被依法追究相关责任。",
|
||||
"date": "2021.01.18"
|
||||
}
|
||||
]
|
Loading…
x
Reference in New Issue
Block a user