Android_實現商品詳情的展示頁及佈局
,,記得要匯入依賴及許可權
商品詳情頁的model層
public class RecyclerDetailsModel {
//自己定義的方法
public void receive(String pid, final IRecyclerDetailsModel iRecyclerDetailsModel) {
String url="http://120.27.23.105/product/getProductDetail";
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("pid" , pid);
OkHttpUtils.getInstance().doPost(url, hashMap, new CallBack() {
@Override
public void onSuccess(String str) {
if (str != null) {
Gson gson = new Gson();
RecyclerDetailsBean rdBean = gson.fromJson(str, RecyclerDetailsBean.class);
if (rdBean != null) {
iRecyclerDetailsModel.onSuccess(rdBean);
}
}
}
@Override
public void onFailed(String message) {
iRecyclerDetailsModel.onFailed();
}
});
}
}
商品詳情頁的model層的藉口
public interface IRecyclerDetailsModel {
void onSuccess(RecyclerDetailsBean rdBean);
void onFailed();
}
商品詳情頁的view層介面
public interface IRecyclerDetailsPresenter {
void onSuccess(RecyclerDetailsBean rdBean);
void onFailed();
}
商品詳情頁的presenter層
public class RecyclerDetailsPresenter implements IRecyclerDetailsModel {
private RecyclerDetailsModel recyclerDetailsModel;
private IRecyclerDetailsPresenter irecyclerDetailsPresenter;
public RecyclerDetailsPresenter(IRecyclerDetailsPresenter irecyclerDetailsPresenter) {
this.irecyclerDetailsPresenter = irecyclerDetailsPresenter;
recyclerDetailsModel = new RecyclerDetailsModel();
}
public void receive(String pid) {
recyclerDetailsModel.receive(pid, this);
}
@Override
public void onSuccess(RecyclerDetailsBean rdBean) {
irecyclerDetailsPresenter.onSuccess(rdBean);
}
@Override
public void onFailed() {
irecyclerDetailsPresenter.onFailed();
}
}
主要的view層
public class RecyclerDetailsActivity extends AppCompatActivity implements IRecyclerDetailsPresenter,IAddShopCarPresenter{
private int pid = 71;
private RecyclerDetailsPresenter recyclerDetailsPresenter;
private ListView listView;
private RecyclerDetailsBean.DataBean data;
private TextView title;
private TextView price;
private String urlImg;
private String[] split;
private String urlTitle;
private double urlPrice;
private ArrayList<String> lists = new ArrayList<String>();
private ViewPager viewPager;
private DetailsAdapter adapter;
private Button join;
private int pids;
private AddShopCarPresenter addShopCarPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
initview();
//Intent intent = getIntent();
//pid = intent.getIntExtra("pid", this.pid);
//獲取商品詳情頁的p層
recyclerDetailsPresenter = new RecyclerDetailsPresenter(this);
//呼叫商品詳情頁的獲取pid的方法
recyclerDetailsPresenter.receive(pid + "");
//將商品新增到購物車的p層
addShopCarPresenter = new AddShopCarPresenter(this);
}
/**
* 獲取控制元件的方法
*
* */
private void initview() {
//輪播展示圖片的控制元件
viewPager = (ViewPager) findViewById(R.id.viewPager);
//點選加入購物車的控制元件
join = (Button) findViewById(R.id.join);
title = (TextView) findViewById(R.id.title);
price = (TextView) findViewById(R.id.price);
}
/*
* 實現成功的方法
* */
@Override
public void onSuccess(RecyclerDetailsBean rdBean) {
/**
* 從集合獲取資料,並賦值
*/
data = rdBean.getData();
pids = data.getPid();
urlImg = data.getImages();
split = urlImg.split("\\|");
urlTitle = data.getTitle();
urlPrice = data.getPrice();
title.setText(urlTitle);
price.setText(urlPrice + "");
/**
* 將圖片做成無限輪播
* 配置介面卡
*/
adapter = new DetailsAdapter(RecyclerDetailsActivity.this, split);
viewPager.setAdapter(adapter);
/**
* 點選加入購物車的按鈕
*/
join.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/*Toast.makeText(RecyclerDetailsActivity.this, ImageLoaderApp.sql.getInt("id", 0)+"", Toast.LENGTH_SHORT).show();*/
//傳入加入購物車的欄位
addShopCarPresenter.receive("android", 3381+"", pids + "");
}
});
}
@Override
public void onSuccess(String msg) {
Toast.makeText(RecyclerDetailsActivity.this, msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed() {
}
/**
* 跳轉購物車
* @param view
*/
public void shopcar(View view){
Intent intent = new Intent(RecyclerDetailsActivity.this, ShoppingCartActivity.class);
startActivity(intent);
}
}
圖片輪播介面卡
/**
* 詳情頁的圖片的無限輪播
*/
public class DetailsAdapter extends PagerAdapter {
private Context context;
private String[] split;
public DetailsAdapter(Context context, String[] split) {
this.context = context;
this.split = split;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//新增圖片到佈局中
View view = View.inflate(context, R.layout.layout_detailviewpager, null);
ImageView img = view.findViewById(R.id.img);
Glide.with(context).load(split[position%split.length]).into(img);
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
}
RecyclerDetailsActivity 的xml佈局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="250dp"></android.support.v4.view.ViewPager>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/viewPager"
android:text="標題"
android:textSize="22sp" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:text="價格"
android:textColor="#F00"
android:textSize="22sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
>
<Button
android:id="@+id/shopcar"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:text="購物車"
android:onClick="shopcar"
/>
<Button
android:id="@+id/join"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:text="加入購物車" />
</LinearLayout>
</RelativeLayout>
介面卡的佈局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
相關推薦
Android_實現商品詳情的展示頁及佈局
,,記得要匯入依賴及許可權 商品詳情頁的model層 public class RecyclerDetailsModel { //自己定義的方法 public void receive(String pid, final IRecyc
【Python web 開發】viewset 實現商品詳情頁的介面
我們如何來完成商品詳情頁的介面呢? 首先要配置一個商品詳情的url 按照我們正常的介面配法 ,應該是後面要加一個id 的,為什麼這裡沒有加id 呢? ,應該是rooter register 的作用吧,等我在學習一遍基礎再來回答? 那麼我們再來寫viewset Mixin.Retriev
淘淘商城系列——實現商品詳情頁面展示
我相信大家通過上文的學習已經搭建好了商品詳情頁面展示工程,本文我將帶領大家一起實現商品詳情頁面展示。 首先我們來看一下商品詳情頁面程式碼,可以看到商品一般屬性在TbItem實體類中都是存在的,只是圖片需要特殊處理,因為TbItem實體類中圖片的欄位儲存的是以”
vue+iview實現table和分頁及與後臺數據交互
姓名 mar 機構 handle use dep 史記 項目 catch 最近在項目中遇到使用table分頁的功能,所以分享出來給大家希望能夠對大家有幫助,話不多說直接上代碼 1 <template> 2 <div> 3
餓了麼專案---13、模組化程式設計,實現商品詳情頁面
import BScroll from 'better-scroll'; import cartcontrol from '../cartcontrol/cartcontrol.vue'; import ratingSelecte from '../ratingSelecte/ratingSelecte.v
利用微信公眾號實現商品的展示和支付(1)
在較早隨筆《微信小程式結合後臺資料管理實現商品資料的動態展示、維護》中介紹過使用小程式實現商品的展示,其實基於對應的介面,我們使用H5頁面來開發基於公眾號的商品展示和支付,也是產不多的原理,不過H5頁面和小程式的介面處理程式碼有一些差異吧了,整體的實現思路倒是差不多的。本篇隨筆介紹基於H5頁面的開發,參照一些
利用微信公眾號實現商品的展示和支付(2)
在前面隨筆《利用微信公眾號實現商品的展示和支付(1)》介紹了商品的列表和明細資訊的處理,本篇隨筆接著上一篇,繼續介紹關於商品的微信支付和購物車處理方面,其中微信支付裡面,也涉及到了獲取微信共享地址的處理,從而個更加方便錄入郵寄地址資訊;購物車可以從本地的localStorage物件進行獲取和處理,也可通過介面
day76_淘淘商城專案_09_商品詳情頁動態展示實現(jsp+redis) + FreeMarker模板引擎入門 + 商品詳情頁靜態化實現(Win版本的nginx作http伺服器)_匠心筆記
淘淘商城專案_09 1、商品詳情頁面展示,動態展示(jsp + redis) 1.1、工程搭建 1.1.1、pom檔案 1.1.2、框架整合 1.1.3、springmvc.xml
仿京東、天貓app的商品詳情頁的布局架構, 以及功能實現
enter layout 顯示 效果 寫上 idt theme brush 2.2.0 一、介紹 這個類是繼承自ImageView的,所以對於這個控件我們可以使用ImageView的所有屬性 二、使用準備, 在as 的 build.grade文件中寫上 compile ‘
iOS 相似淘寶商品詳情查看翻頁效果的實現
nim anim bool with animate resource tlab 更改 tro 基本思路: 1、設置一個 UIScrollView 作為視圖底層,而且設置分頁為兩頁 2、然後在第一個分頁上加入一個 UITableView 而且設置表格
vue實現淘寶商品詳情頁屬性選擇功能
line pan func sel eth AD 圖片 [1] urn 方法一是自己想出來的,方法二來自忘記哪裏看到的了 不知道是不是你要的效果: 方法一:利用input[type="radio"] css代碼: 1 input { 2
android 自定義ViewGroup實現仿淘寶的商品詳情頁
最近公司在新版本上有一個需要, 要在首頁新增一個滑動效果, 具體就是仿照X寶的商品詳情頁, 拉到頁面底部時有一個粘滯效果, 如下圖 X東的商品詳情頁,如果使用者繼續向上拉的話就進入商品圖文描述介面: 剛開始是想拿來主義,直接從網上找個現成的demo來用, 但是網上無一
iOS 類似淘寶商品詳情檢視翻頁效果的實現
基本思路: 1、設定一個 UIScrollView 作為檢視底層,並且設定分頁為兩頁 2、然後在第一個分頁上新增一個 UITableView 並且設定表格能夠上提載入(上拉操作即為讓檢視滾動到下一頁) 3、 在第二個分頁上新增一個 UIWebView 並且
商品詳情頁及秒殺倒計時功能
詳情頁進入:就是前端點選連結,連結中有{goodsId}作為引數,後端@PathVarible 拿到這個id,然後去資料庫查詢對應的商品資訊,並顯示的一個功能。這裡有一個比較重要的就是秒殺倒計時功能:後端獲取秒殺開始時間和結束時間,以及系統當前時間,並定義剩餘時間變數和秒殺狀
自定義ViewGroup實現仿淘寶的商品詳情頁
最近公司在新版本上有一個需要, 要在首頁新增一個滑動效果, 具體就是仿照X寶的商品詳情頁, 拉到頁面底部時有一個粘滯效果, 如下圖 X東的商品詳情頁,如果使用者繼續向上拉的話就進入商品圖文描述介面: 剛開始是想拿來主義,直接從網上找個現成的demo來用, 但是網上無一
實現淘寶商品詳情頁toolbar 漸變、狀態列沉浸
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-
iOS 常見的商品詳情頁佈局
#pragma mark -Life Cycle-(void)dealloc{ [self removeObserver];}- (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.tit
電商網站商品模型之商品詳情頁設計方案
查詢 amp 多對一關系 int cor http 添加 com 托盤 如下設計方案參考淘寶和華為商城 SKU SPU的關系 SPU = Standard Product Unit (標準產品單位) SPU是商品信息聚合的最小單位,是一組可復用、易檢索的標準化信息的集合,該
商品詳情頁(food組件)
text itl 哪些 編程思想 如果 遮蓋 foo lan ima 前言 本節分為四大塊: 1. 商品詳情頁 food 組件(布局樣式、第三方插件庫better-scroll 的應用) 2. split 組件 3. ratingselect 組件 4. 評價列表
【轉載】八、商品詳情頁功能
nero tle 文件 tro 過濾器 price 搜索 應該 == 八、商品詳情頁功能 8.1.viewsets實現商品詳情頁接口 (1)商品詳情頁只需要多繼承一個類(mixins.RetrieveModelMixin)就可以了 class GoodsListV