1. 程式人生 > >點選recyclerview的item跳轉(eventbus)傳值

點選recyclerview的item跳轉(eventbus)傳值

**第一步,匯入依賴,如:
    /*recyclerview依賴*/
    compile 'com.android.support:recyclerview-v7:26.1.0'
    /*fresco載入圖片*/
    compile 'com.facebook.fresco:fresco:0.11.0'
    /*fresco載入動圖*/
    compile 'com.facebook.fresco:animated-gif:0.12.0'
    /*eventbus依賴*/
    compile 'org.greenrobot:eventbus:3.0.0'
**
**第二步,上程式碼,如:**
**activity_main**
<?xml version="1.0"
encoding="utf-8"?> <android.support.constraint.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"
tools:context="com.bawei.lss_rk1130.MainActivity"> <!--RecyclerView佈局--> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </android.support.constraint.ConstraintLayout> **layout_item** <?xml version="1.0"
encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" > <!--RecyclerView的item,點選傳值--> <!--SimpleDraweeView控制元件,放置圖片--> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/tu" android:layout_width="100dp" android:layout_height="100dp" app:roundAsCircle="true" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="咿呀咿呀呀" /> </LinearLayout> **activity_send** <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.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" tools:context="com.bawei.lss_rk1130.SendActivity" android:orientation="vertical" > <!--接受傳值控制元件--> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/tu02" android:layout_width="100dp" android:layout_height="100dp" app:roundAsCircle="true" /> <TextView android:id="@+id/tv02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="耶耶耶耶耶" /> </android.support.constraint.ConstraintLayout> **MainActivity** public class MainActivity extends AppCompatActivity { private RecyclerView mRv; private ArrayList<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); /*只要寫RV佈局,就別忘了設定佈局管理器*/ mRv.setLayoutManager(new LinearLayoutManager(this)); final ArrayList<String> list = new ArrayList<>(); for(int i=0;i<10;i++){ list.add("咿呀咿呀咿呀呀啊"+i); } Myadapter myadapter = new Myadapter(MainActivity.this,list); mRv.setAdapter(myadapter); } private void initView() { mRv = (RecyclerView) findViewById(R.id.rv); } } **Myadapter** public class Myadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ private Context context; private ArrayList<String> list; String[] path=new String[]{ "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif", "http://qq.yh31.com/tp/zjbq/201711191845013603.gif" }; public Myadapter(Context context, ArrayList<String> list) { this.context = context; this.list = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(context,R.layout.layout_item,null); return new MyViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyViewHolder myViewHolder= (MyViewHolder) holder; DraweeController draweeController = Fresco.newDraweeControllerBuilder() .setUri(path[position]) .setAutoPlayAnimations(true) // 設定載入圖片完成後是否直接進行播放 .build(); myViewHolder.tu.setController(draweeController); myViewHolder.tv.setText(list.get(position)); /*賦值*/ final String ss=path[position]; final String s = list.get(position); /*點選傳值*/ myViewHolder.tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().postSticky(new EventMessage(ss,s)); Intent intent = new Intent(context, SendActivity.class); context.startActivity(intent); } }); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder{ SimpleDraweeView tu; TextView tv; public MyViewHolder(View itemView) { super(itemView); tu = itemView.findViewById(R.id.tu); tv = itemView.findViewById(R.id.tv); } } } **Myapp ** public class Myapp extends Application{ @Override public void onCreate() { super.onCreate(); Fresco.initialize(this); } } **EventMessage** public class EventMessage { private String image; private String name; public EventMessage(String image, String name) { this.image = image; this.name = name; } public String getName() { return name; } public String getImage() { return image; } /*public EventMessage(String name) { this.name = name; } public String getName() { return name; }*/ } **SendActivity ** public class SendActivity extends AppCompatActivity { /** * 耶耶耶耶耶 */ private SimpleDraweeView mTu; private TextView mTv; private String image; private String name; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_send); EventBus.getDefault().register(this); initView(); DraweeController draweeController = Fresco.newDraweeControllerBuilder() .setUri(image) .setAutoPlayAnimations(true) // 設定載入圖片完成後是否直接進行播放 .build(); mTu.setController(draweeController); mTv.setText(name); } private void initView() { mTv =findViewById(R.id.tv02); mTu=findViewById(R.id.tu02); } @Subscribe(sticky = true) public void EventMagess(EventMessage messageEvent) { image = messageEvent.getImage(); name = messageEvent.getName(); } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } } **最後別忘了加網路許可權,註冊圖片載入** **大家可以先實現recyclerview的展示,再實現跳轉(eventbus)傳值**

相關推薦

recyclerview的item(eventbus)

**第一步,匯入依賴,如: /*recyclerview依賴*/ compile 'com.android.support:recyclerview-v7:26.1.0' /*fresco載入圖片*/ compile 'com.f

封裝List,按鈕並優化

package com.example.yinchenglong1229; import android.annotation.SuppressLint; import android.content.Intent; import android.os.AsyncTask; import android.s

H5頁面

性能 取數 body 獲取 sessions web 前端 javascrip a標簽 頁面之間的跳轉經常使用a標簽,使用mvc框架的都是通過訪問controller的請求方法,返回請求頁面。但本次開發,前端與後臺完全分離,前端APP使用HBuider來開發,後臺數據就無

JSP頁面的

路徑 direct 網頁 dir param header() dex set att 1.response.sendRedirct("跳轉到頁面的URL"); 該方法通過修改HTTP協議的HEADER部分,對瀏覽器下達重定向指令的,使瀏覽器顯示重定向網頁的內容. requ

前端外掛jquery.singlePageNav.min.js(導航選單縮放選單摺疊按鈕緩衝效果外掛)

Bootstrap導航點選選單跳轉與點選縮放選單摺疊按鈕緩衝效果外掛jquery.singlePageNav.min.js 引入步驟: <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"><

Android中在fragment A裡面button到fragment B實現方法

方法一:直接getActivity,使用activity的fragmenttransation的replace方法替換 假設 class OneFragment extends Fragment{ private Button btn; @Override p

友盟登陸+OkHttp+recyclerview展示瀑布流+Intent+屬性動畫

友盟詳情見 https://blog.csdn.net/aijaijgnaw/article/details/84203936 分包 友盟第三方登入 MyApp(Application) package com.umeng.soexample.app; import and

vue頁面

跳轉 #<script> this.$router.push({path:'/index'}) #template <button @click="goToHome">首頁</button> #實用router-link <router-link

Android開發之Activity的建立

在Android系統的江湖中有四大元件:活動(Activity), 服務(Service), 廣播接收器(Broadcast Reciver)和內容提供者(Content Provider)。今天所介紹的就是Android開發中的四大元件之一:Activity,其他那三大元件

mpvue小程式裡面navigator分析

1.一般這種情況是路徑沒有配置對,並且控制檯會報錯。2.你配置的路徑是tabbar裡定義的路徑,控制檯不報錯,但是也不會跳轉,這個時候如果你需要在導航和tabbar同時跳轉,需要加個屬性:需要注意的是,當你路徑變成非tabbar路徑時,需要把這個屬性去掉open-type="

layer彈出層的內容頁按鈕到新的頁面問題

在參與的一個專案中,有一個這樣的需求,匯入基礎資料成功後,預設彈出一個管理員登入頁,點選登入按鈕,需要跳到管理頁面。 匯入頁按鈕: <button type="button" id="start" class="layui-btn layui-b

jsbutton到另一個頁面

點選按鈕怎麼跳轉到另外一個頁面呢?我們在網站製作中可能是需要的,因為有時我們需要做這樣的效果,尤其是將按鈕做成一個圖片,而點選圖片要跳轉到新的頁面時,怎麼做到呢? 這樣的效果可以:onclick="window.location='新頁面'" 來實現。 1.在原來的窗體中直接跳轉用 程式碼如下 window

web中關於頁面

1、使用超連結<a href="/Default/Index">新增</a><a href="#">返回顯示資訊</a>:主頁地址格式是:/+控制器名+檢視名+/ 2、 然後在控制器中例項化多個產品物件,並存儲到泛型集合,最後一併通過View()方向傳遞給檢

連結到微信公眾號關注頁、微信關注連結

現在的公眾號引流一般都只能是 二維碼掃碼後關注,那麼通過點選一段網頁連結(圖片、或文字)怎麼引導使用者到公眾號關注頁呢? 一、首先開啟需要設定關注頁 的公眾號 此時的公眾號應該已經開啟 原創功能並發表有原創文章(登入微信公眾平臺設定) 二、進入公眾號的訊息列表頁,並進入任意一篇 原

微信連結外部瀏覽器開啟指定頁面的實現

隨著微信的越來越大眾化,微信的使用程度也越來越高。隨之,產生了一種新的推廣模式,即微信推廣。在這個微信的大平臺上會衍生出許許多多的推廣手段。而移動前端作為服務於手機使用者的手機網頁技術,也不可避免的加入進來。一些客戶不僅僅滿足於自己的網站可以在微信端上完美的展現出來(因為微信大面積遮蔽掉了眾多推廣營銷的域名)

安卓-通過Button不同的頁面。

最近在做一個安卓前端,剛開始接觸安卓(菜鳥一隻),啥都不懂,就通過記筆記的方法來了解安卓吧。在自己的xml的檔案中定義一個Button。如下:<Button android:id="@+id/btnOne" android

js實現『載入更多』功能例項 & 列表到詳情頁(tap)

寫在前面: 實際操作過程中,因為要用ajax去請求很多次資料,所以效能方面肯定會打折扣,拼接資料也是很麻煩,對於列表資料比較多的情況,寫起來不方便,也不好修改維護,不過功能實現很完整,我正在考慮去看看Vue裡面不用修改v-for嘗試著讓它在陣列上面做文章。 h5專案裡需要實現簡單的分頁功

react-native最新的ES6基於頁面

引導頁面:最新的react-native頁面跳轉和傳值 /** * Sample React Native App * https://github.com/facebook/react-native */ import React, { Ap

swift UI專項訓練42 用Swift程式碼實現頁面

   之前我們做過如果要點選一個按鈕實現跳轉到另一個按鈕的辦法,有時候我們需要通過一些動作來觸發頁面的跳轉,比如搖動手機,這樣就不能直接用連線的辦法來實現跳轉了,那麼如何通過程式碼的方式來實現跳轉呢?依舊使用過渡的方法,在storyboard中把要實現跳轉的兩張頁面連線,注

echarts-圖例,但圖例不被關閉

myChart.setOption(option_science); var triggerAction = function(action, selected) {