安卓學習筆記三(activity、MVC設計模式、intent)
標簽: Android
目錄
一、將控件鏈接起來
二、創建并顯示Toast消息
三、創建一個新的Activity類
四、用intent啟用一個activity
在activity中訪問控件
步驟一:添加成員變量(可能被跳過)
private Button btn;
步驟二:引用控件
findViewById(R.id.***);
步驟三:為控件設置監聽器(有三種方法)
btn1.setOnClickListener(…);
有三種方法來設置監聽器
1、接口(推薦)
public class MainActivty extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState){
....
btn.setOnClickListener(this);
}
@Override
public void onClick(View view){
//實現點擊事件的代碼
}
}
2、匿名內部類
btn.setOnClickListener(new View.OnClickListener(){
@override
public void OnClick(View view){
//實現點擊事件的代碼
}
});
3、在xml布局文件中設置onClick屬性,在Activity中定義實現點擊事件的方法名必須與onClick屬性的值保持一致
activity_main.xml:
<Button
android:onClick="click"
/>
MainActivity.java:
public void click(View view){
//實現點擊事件的代碼
}
MVC設計模式
模型對象存儲著應用的數據和業務邏輯。模型類通常用來映射與應用相關的一些事物,如用戶、商店里的商品、服務器上的圖片或者一段電視節目,抑或為GeoQuiz應用里的地理知識問題。模型對象不關心用戶界面,它為存儲和管理應用數據而生。模型類通常就是我們創建的定制類。應用的全部模型對象組成了模型層。
視圖對象知道如何在屏幕上繪制自己,以及如何相應用戶的輸入,如觸摸動作等。一個簡單的經驗法則是,凡是能夠在屏幕上看見的對象,就是視圖對象。應用的全部視圖對象組成了試圖成
控制器對象含有應用的邏輯單元,是視圖對象與模型對象的聯系紐帶。控制器對象相應視圖對象觸發的各類事件,此外還管理著模型對象與視圖層間的數據流動
啟動和結束Activity的方法
啟動Activity的方法
startActivity(intent);
startActivityForResult(intent,requestCode);
結束Activity的方法
finish();
Intent
1、Intent intent = new Intent();
2、顯式意圖(explicit intent)
setClass(FirstActivity.this,SecondActivity.class);
FirstActivity.this:當前的activity
SecondActivity.class:要跳轉到的目標activity
示例:
Intent intent = new Intent();
setClass(FirstActivity.this,SecondActivity.class);
startActivity(intent);
3、隱式意圖(implicit intent)
setAction();
隱式Intent不會明確指出需要**的目標組件,它被廣泛地應用在不同應用程序之間傳遞消息。Android系統會使用IntenrFilter匹配相應的組件,匹配的屬性主要包括以下三個:
action:表示Intent對象要完成的動作
data:表示Intent對象中傳遞的數據
category:表示為action添加的額外信息
示例:我們要在Project1程序的MainActivity中開啟SecondActivity
首先我們要在Project2程序的清單文件(AndroidManifest.xml)中
,配置SecondActivity的action為“cn.itcast.START_ACTIVITY”
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="cn.itcast.START_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
然后我們要在Project1程序中的MainActivity中啟動SecondActivity
Intent intent = new Intent();
intent.setAction("cn.itcast.START_ACTIVITY");//設置action動作,該動作必須和清單文件中設置的一樣
startActivity(intent);
智能推薦
安卓學習日記——Activity(一)
四大核心組件——Activity 簡介:一個Activity代表一個界面,即一個活動。活動開始,則Activity組件啟動,活動結束,則代表一個Activity組件生命周期結束 內部概念 1)Application 2)Activity 3)Activity棧 4)task 一整個應用就是一個Application,即平時說的APP 圖解 其中123代表的是一個個Activ...
安卓學習筆記
學習安卓的學習筆記,留存一下,雖然以后可能都不會從事安卓相關的工作了,紀念一下。 1 Activity 1 返回棧 活動可以層疊,啟動一個新的活動會覆蓋在原活動上,Back會銷毀最上面的活動,下面的一個活動就會重新顯示。 用任務管理一系列活動。任務用返回棧描述。 啟動一個新的活動,這個活動就在返回棧中入棧,finish()即棧頂元素出棧,系統總是會顯示處于棧頂的活動給用戶。(所以finish()銷...
安卓 Buddle與Intent的聯合使用(Activity傳參)(kotlin實現)
Activity1 需要注意的是空指針的處理 不得不說 Buddle傳參確實感覺挺好用的QAQ activity2 執行結果 ...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...