使用接口傳遞數(shù)據(jù)

  • 例如我的“極簡天氣”項目中的城市列表的適配器中需要將點擊的城市名稱傳給天氣信息界面的Activity中蛔琅,城市列表是在一個Fragment中加載的,所以可以在城市列表的適配器(CityListAdapter)中寫一個公用的接口奈辰,如下:
private CallBack mCallback;
public CityListAdapter (CallBack callback) {
        this.mCallback = callback;
    }
    
    public interface CallBack {
        public void getCityName(String cityname);
    }

然后在此類中將點擊的城市信息獲取到并調(diào)用接口CallBack中的方法getCityName傳入cityname中栏妖,如下:

viewHolder.llMain.setOnClickListener(new OnClickListener() {
                   
                   @Override
                   public void onClick(View v) {
                       //點擊全部城市響應(yīng)
                       if(mCallback!=null){
                           
                           mCallback.getCityName(mAllCityList.get(position).getName());
                           
                       }else{
                           Log.e("mcallback-->", "null");
                       }
                   }
               });

此時,要先在應(yīng)用此適配器的listFragment中實例化CityListAdapter奖恰,并接收接口的數(shù)據(jù)吊趾,即城市信息:

private CallBack mCallback;
public listFragment(CallBack callback) {
        this.mCallback = callback;
    }
cityListAdapter = new CityListAdapter(getActivity(), allCityList,
                hotCityList, new CallBack() {

                    @Override
                    public void getCityName(String cityname) {
                        // TODO Auto-generated method stub
                        if (cityname != null) {
                            
                            mCallback.getCityName(cityname);
                            
                            onBackkey();
                        } else {
                            Log.e("null", "kong");
                        }
                    }
                });

然后在activity中實例化listFragment宛裕,并接收城市信息:

transaction.replace(R.id.weather_layout, new listFragment(
                        new CallBack() {

                            @Override
                            public void getCityName(String cityname) {
                                
                                tempCity = cityname;

                                showWeather();
                            }

                        }));

若listFragment中另外一個適配器SearchResultAdapter也要傳遞數(shù)據(jù)給activity,則在SearchResultAdapter中:

public SearchResultAdapter (CallBack callback) {
        this.mCallback = callback;
    }
viewHolder.tvCityName.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                
                mCallback.getCityName(mSearchList.get(position).getName());
                
            }
        });

然后以相同方式在listFragment中接收:

private CallBack mCallback;
public listFragment(CallBack callback) {
        this.mCallback = callback;
    }

注:先創(chuàng)建一個接口的對象mCallback论泛,然后再創(chuàng)建listFragment的構(gòu)造方法揩尸,之后在下面才可以使用mCallback來調(diào)用接口的方法,即mCallback.getCityName(cityname);

searchResultAdapter = new SearchResultAdapter(getActivity(),
                searchCityList, new CallBack() {

                    @Override
                    public void getCityName(String cityname) {
                        // TODO Auto-generated method stub

                        mCallback.getCityName(cityname);

                        onBackkey();
                    }
                });

注:接口是一個公用的傳遞數(shù)據(jù)的工具屁奏,若要傳遞的數(shù)據(jù)類型相同岩榆,則只需在一個類中寫一次,即可在此包中所用的類使用坟瓢,但不能跳類傳遞勇边,若A類中包含B類,B類中包含C類折联,要將C中的數(shù)據(jù)傳給A類粒褒,只能先給B再給A

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市崭庸,隨后出現(xiàn)的幾起案子怀浆,更是在濱河造成了極大的恐慌,老刑警劉巖怕享,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件执赡,死亡現(xiàn)場離奇詭異,居然都是意外死亡函筋,警方通過查閱死者的電腦和手機(jī)沙合,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跌帐,“玉大人首懈,你說我怎么就攤上這事〗髁玻” “怎么了究履?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脸狸。 經(jīng)常有香客問我最仑,道長,這世上最難降的妖魔是什么泥彤? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任颈娜,我火速辦了婚禮剑逃,結(jié)果婚禮上浙宜,老公的妹妹穿的比我還像新娘。我一直安慰自己梆奈,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布称开。 她就那樣靜靜地躺著亩钟,像睡著了一般鳖轰。 火紅的嫁衣襯著肌膚如雪清酥。 梳的紋絲不亂的頭發(fā)上蕴侣,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天辱志,我揣著相機(jī)與錄音已球,去河邊找鬼阔蛉。 笑死遭笋,一個胖子當(dāng)著我的面吹牛央串,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼醋闭,長吁一口氣:“原來是場噩夢啊……” “哼饮戳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起键菱,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拭抬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后造虎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡纷闺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年犁功,在試婚紗的時候發(fā)現(xiàn)自己被綠了澎媒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡波桩,死狀恐怖戒努,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情镐躲,我是刑警寧澤储玫,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站萤皂,受9級特大地震影響撒穷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜裆熙,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一端礼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧入录,春花似錦蛤奥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚀同,卻和暖如春缅刽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蠢络。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工衰猛, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刹孔。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓啡省,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冕杠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法酸茴,內(nèi)部類的語法分预,繼承相關(guān)的語法,異常的語法薪捍,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理笼痹,服務(wù)發(fā)現(xiàn),斷路器酪穿,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程凳干,因...
    小菜c閱讀 6,358評論 0 17
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,791評論 0 11
  • 在我的生活中,除了工作被济,家務(wù)救赐,我的業(yè)余愛好只是追劇和逛購物平臺,對于外人來說只磷,我是一個沒有興趣愛好的人经磅,低調(diào)而冷漠...
    唯唯的媽媽閱讀 215評論 0 0