大部分筆記都是來(lái)自郭霖前輩的《第一行代碼》。內(nèi)容也是覺(jué)得有用就記,相對(duì)來(lái)說(shuō)比較混亂。
- 四大組件
- 活動(dòng)(Activity):類(lèi)似于OC的Controller厅须,主要用于處理用戶(hù)的交互事件
- 服務(wù)(Service):后臺(tái)運(yùn)行的服務(wù),即使程序退出仍然可以在后臺(tái)運(yùn)行
- 廣播接受器(BroadcastReceiver):允許應(yīng)用接收來(lái)著各處的消息食棕,比如電話(huà)/短信等
- 內(nèi)容提供器(ContentProvider):為應(yīng)用程序之間的數(shù)據(jù)共享提供了可能朗和,比如讀取系統(tǒng)電話(huà)薄中的聯(lián)系人,就需要通過(guò)內(nèi)容提供器來(lái)實(shí)現(xiàn)簿晓。
- Res目錄詳解
- Drawable開(kāi)頭的文件都是用來(lái)放圖片的
- Values開(kāi)頭的文件夾是用來(lái)放字符串的
- Menu文件夾是用來(lái)放菜單文件的
- Layout文件夾是用來(lái)放布局文件的
- Mipmap文件夾是放啟動(dòng)圖標(biāo)的
- 內(nèi)容的引用方式:
- 1眶拉、在代碼中通過(guò)R.string.hello_world可以獲得字符串的引用(R.文件名.健名或方法)
- 2、在XML中通過(guò)@string/hello_world可以獲得字符串的引用(@文件名/健名)
二 logCat的使用
- 定義控件的屬性
- android:id :給當(dāng)前元素定義一個(gè)唯一標(biāo)識(shí)符憔儿,之后可以在代碼中對(duì)這個(gè)元素進(jìn)行操作忆植。
- 注:XML文件中引用一個(gè)id,使用@id/id_name谒臼,定義一個(gè)id使用@+id/id_name
- activity相關(guān)知識(shí)點(diǎn)
- activity通過(guò)setContetnView方法引用布局文件
- 所有activity都要在AndroidManifest.xml文件中進(jìn)行注冊(cè)才能生效
- 通過(guò)android:label指定活動(dòng)中標(biāo)題欄的內(nèi)容
- 讓activity成為主activity需加以下聲明(點(diǎn)擊圖標(biāo)即啟動(dòng))
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
- 注:應(yīng)用程序沒(méi)有聲明主activity依舊可以安裝朝刊,只是裝后無(wú)法在啟動(dòng)器看到或者打開(kāi)程序,這種一般是作為第三方服務(wù)供其他應(yīng)用在內(nèi)部調(diào)用蜈缤。如: 支付寶快捷支付服務(wù)拾氓。
- Activity隱藏標(biāo)題欄的代碼:
requestWindowFeature(Window.FEATURE_NO_TITLE)
- 注:此句代碼需在setContentView前執(zhí)行,否則報(bào)錯(cuò)
- 在activity中底哥,可以通過(guò)findViewById()方法返回一個(gè)view對(duì)象
Button btn1 = (Button) findViewById(R.id.first_btn);- activity中Toast的使用
- Toast是一個(gè)hud提示框咙鞍,具體使用如下代碼
Toast.makeText(FirstActivity.this, "不要點(diǎn)我啊",
Toast.LENGTH_SHORT).show();
- 調(diào)用Toast的靜態(tài)方法makeText()就可創(chuàng)建房官,注意的是,該方法需傳三個(gè)參數(shù)续滋,第一個(gè)是上下文翰守,因?yàn)閍ctivity本身就是一個(gè)上下文故傳對(duì)應(yīng)的activity.this即可,第二個(gè)參數(shù)是顯示的內(nèi)容疲酌,第三個(gè)參數(shù)是Toast顯示的時(shí)長(zhǎng)
- activity中創(chuàng)建菜單項(xiàng)
public boolean onCreateOptionsMenu(Menu menu) {
//創(chuàng)建菜單
getMenuInflater().inflate(R.menu.main, menu); return true;}
- 點(diǎn)擊菜單的響應(yīng)事件
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.add_item:
Toast.makeText(this, "點(diǎn)擊添加", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "點(diǎn)擊移除", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return true;}
- 銷(xiāo)毀一個(gè)activity的兩種方式
//手機(jī)按下back鍵
//通過(guò)調(diào)用finish()方法銷(xiāo)毀activity
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } });
- 2.3Intent的使用
- Intent是程序中各組件進(jìn)行交互的一種重要方式蜡峰,它不僅可以指明當(dāng)前組件想要執(zhí)行的動(dòng)作,還可以在不同組件之間傳遞數(shù)據(jù)徐勃。
- Intent分為顯示Intent和隱式Intent
- 顯式Intent的使用步驟:1. 創(chuàng)建Intent事示,2.調(diào)用startActivity()方法
Intent intent = new Intent(FirstActivity.this, MainActivity.class);startActivity(intent);- 隱式Intent:隱式Intent沒(méi)有明確指出要啟動(dòng)哪個(gè)activity早像,而是指定了一系列抽象的action和category等信息僻肖,然后交由系統(tǒng)去分析這個(gè)Intent,并啟動(dòng)對(duì)應(yīng)的activity卢鹦。
- 要成為隱式Intent可以啟動(dòng)的activity臀脏,必須在AndroidManifest.xml文件中綁定對(duì)應(yīng)action和category
AndroidManifest.xml文件中定義activiy對(duì)應(yīng)的參數(shù)
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="com.example.anwser_mac.myapplication04.ACTION_SART"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="com.example.anwser_mac.myapplication04.my_category"></category>
</intent-filter></activity>
- 調(diào)用
Intent intent = new Intent("com.example.anwser_mac.myapplication04.ACTION_SART");
intent.addCategory("com.example.anwser_mac.myapplication04.my_category");
startActivity(intent);