Android 最簡單的MVP案例;

隨手擼個發出來:

V:界面層

//界面層需要實現P.View方法,然后重寫P.View中的方法;M層給的數據就在這些個方法的參數中;
// 還要獲取到P.Provide的實例,使用P.Provide去調用M層的方法;
public class ActivityDemo extends AppCompatActivity implements DemoP.View {private DemoP.Provide provide;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_demo);new DemoM(this);provide.start();}@Overridepublic void showMessage(String msg) {Log.i("mvp", "showMessage: "+msg);}@Overridepublic void Provide(DemoP.Provide m) {provide = m;}}

P:連接層

public interface DemoP {//提供界面interface View{void showMessage(String msg);void Provide(DemoP.Provide m);}//提供信息interface Provide{void start();}
}

M:數據層

// 數據層需要實現P.Provide,然后重寫P.Provide;V層就要調用你的這些方法;
// 還要獲取到P.View的實例,使用P.View把你處理好的數據返回給V層;
public class DemoM implements DemoP.Provide{private DemoP.View view;public DemoM(DemoP.View v){view = v;view.Provide(this);}@Overridepublic void start() {StringBuffer ss = new StringBuffer();for (int i = 0; i < 10; i++) {ss.append("\n--"+i);}view.showMessage(ss.toString());}
}

如果剛接觸MVP看著有疑惑,就照著擼一遍,大致就能懂了;

還可以看看封裝一下的:MVP案例

轉載于:https://www.cnblogs.com/cuichen16/p/10785943.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395667.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395667.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395667.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++編碼風格指南_100%正確編碼樣式指南

c編碼風格指南Tabs or spaces? Curly brace on the same line or a new line? 80 character width or 120?制表符或空格&#xff1f; 在同一行或新行上大括號&#xff1f; 80個字符的寬度還是120個字符&#xff1f; Coders love to argue about this kind of stuff. The ta…

Netty源碼注釋翻譯-Channel類

定義為一個通往網絡socket或者一個由I/O讀寫能力的組件。 通道提供&#xff1a; 1&#xff0c;通道的當前狀態&#xff0c;打開&#xff1f;已連接&#xff1f; 2&#xff0c;跟通道關聯的配置信息ChannelConfig&#xff0c;包括buffer大小等。 3&#xff0c;通道支持的I/O操作…

Today is weekend不是應該一定會輸出嗎

判斷語句 If…else塊&#xff0c;請看下面這個例子&#xff1a; <%! int day 3; %>                       //聲明變量感嘆號 <html> <head><title>IF...ELSE Example</title></head> <body> <% if (day …

時間模塊和時間工具

一、time模塊 三種格式 時間戳時間&#xff1a;浮點數 單位為秒 時間戳起始時間&#xff1a; 1970.1.1 0:0:0 英國倫敦時間 1970.1.1 8:0:0 我國(東8區) 結構化時間&#xff1a;元組(struct_time) 格式化時間&#xff1a;str數據類型的 1、常用方法 import timetime.sleep(secs…

redux擴展工具_用鴨子擴展您的Redux App

redux擴展工具How does your front-end application scale? How do you make sure that the code you’re writing is maintainable 6 months from now?您的前端應用程序如何擴展&#xff1f; 您如何確定您正在編寫的代碼從現在起6個月內可維護&#xff1f; Redux took the …

mac下源碼安裝redis

轉載&#xff1a;http://www.jianshu.com/p/6b5eca8d908b 下載安裝包 redis-3.0.7.tar.gz 官網地址&#xff1a;http://redis.io/download 解壓&#xff1a;tar -zvxf redis-3.0.7.tar.gz 將解壓后的文件夾放到 /usr/local目錄下 編譯測試:接下來在終端中切換到/usr/local/red…

代碼掃描工具測試覆蓋率工具

測試覆蓋率工具轉載于:https://www.cnblogs.com/vivian-test/p/5398289.html

php splqueue 5.5安裝,解析PHP標準庫SPL數據結構

SPL提供了雙向鏈表、堆棧、隊列、堆、降序堆、升序堆、優先級隊列、定長數組、對象容器SplQueue 隊列類進出異端&#xff0c;先進先出<?php $obj new SplQueue();//插入一個節點到top位置$obj->enqueue(1);$obj->enqueue(2);$obj->enqueue(3);/**SplQueue Object…

Beta階段敏捷沖刺總結

設想和目標 1. 我們的軟件要解決什么問題&#xff1f;是否定義得很清楚&#xff1f;是否對典型用戶和典型場景有清晰的描述&#xff1f; 在最開始的時候我們就是為了解決集美大學計算機工程學院網頁沒有搜索引擎的問題。因為沒有搜索引擎&#xff0c;在搜索內容時需要根據查找信…

c語言 二進制壓縮算法_使用C ++解釋的二進制搜索算法

c語言 二進制壓縮算法by Pablo E. Cortez由Pablo E.Cortez 使用C 解釋的二進制搜索算法 (Binary Search Algorithms Explained using C) Binary search is one of those algorithms that you’ll come across on every (good) introductory computer science class. It’s an …

【LATEX】個人版latex論文模板

以下是我的個人論文模板&#xff0c;運行環境為Xelatex(在線ide&#xff1a;Sharelatex.com) 鑒于本人常有插入程序的需求&#xff0c;故引用了lstlisting \RequirePackage{ifxetex} \ifxetex\documentclass[hyperref, UTF8, c5size, no-math, winfonts&#xff0c;a4paper]{ct…

初識virtual memory

一、先談幾個重要的東西 virtual memory是一個抽象概念&#xff0c;書上的原文是"an abstraction of main memory known as virtual memory"&#xff08;參考資料p776&#xff09;。那么什么是抽象概念。下面說說我個人對這個東西的理解。 所謂抽象概念是指抽象出來的…

java創建mysql驅動,JDBC之Java連接mysql實現增刪改查

使用軟件&#xff1a;mysql、eclipse鏈接步驟&#xff1a;1.注冊驅動2.創建一個連接對象3.寫sql語句4.執行sql語句并返回一個結果或者結果集5.關閉鏈接(一般就是connection、statement、setresult)這三個連接對象&#xff0c;關閉順序一般是(setresult ---> statement …

算法第五章作業

1.你對回溯算法的理解&#xff08;2分&#xff09; 回溯法&#xff08;探索與回溯法&#xff09;是一種選優搜索法&#xff0c;又稱為試探法&#xff0c;按選優條件向前搜索&#xff0c;以達到目標。但當探索到某一步時&#xff0c;發現原先選擇并不優或達不到目標&#xff0c;…

c++編碼風格指南_100%正確的編碼樣式指南

c編碼風格指南Here are three links worth your time:這是三個值得您花費時間的鏈接&#xff1a; The 100% correct coding style guide (4 minute read) 100&#xff05;正確的編碼樣式指南( 閱讀4分鐘 ) I wrote a programming language. Here’s how you can, too (10 minu…

xp開機黑屏故障分析

今天裝完xp系統之后&#xff0c;重啟開機發現竟然黑屏了&#xff0c;查資料發現有很多用戶在修改分辨率后&#xff0c;因顯示器不支持修改后的分辨率&#xff0c;會出現電腦黑屏的情況。分辨率調高了&#xff0c;超出了屏幕的范圍&#xff0c;肯定會黑屏&#xff0c;而且這個問…

應用程序圖標_如何制作完美的應用程序圖標

應用程序圖標by Nabeena Mali通過Nabeena Mali 如何制作完美的應用程序圖標 (How to Make the Perfect App Icon) With just 24 app icon slots on the first page of an iPhone home screen, or 28 if you have a fancy iPhone 7, creating the perfect app icon is a vital …

Luogu3702 SDOI2017 序列計數 矩陣DP

傳送門 不考慮質數的條件&#xff0c;可以考慮到一個很明顯的$DP:$設$f_{i,j}$表示選$i$個數&#xff0c;和$mod\ pj$的方案數&#xff0c;顯然是可以矩陣優化$DP$的。 而且轉移矩陣是循環矩陣&#xff0c;所以可以只用第一行的數字代替整個矩陣。當然了這道題$p \leq 100$矩陣…

java閏年的年份,Java案例-判斷給定年份是閏年

專注學子高考志愿填報&#xff0c;分享你所不知道信息。Java案例-判斷給定年份是閏年案例描述編寫程序&#xff0c;判斷給定的某個年份是否是閏年。閏年的判斷規則如下&#xff1a;(1)若某個年份能被4整除但不能被100整除&#xff0c;則是閏年。(2)若某個年份能被400整除&#…

通過path繪制點擊區域

通過path繪制點擊區域 效果 源碼 https://github.com/YouXianMing/Animations // // TapDrawImageView.h // TapDrawImageView // // Created by YouXianMing on 16/5/9. // Copyright © 2016年 YouXianMing. All rights reserved. //#import <UIKit/UIKit.h> #…