活動(dòng)(activity)是一種可以包含用戶界面的組件,主要用于和用戶進(jìn)行交互。
活動(dòng)在src/java文件夾中java為后綴的文件。
public class MainActivity extends Activity //Activity是android系統(tǒng)提供的一個(gè)活動(dòng)基類,所有活動(dòng)必須繼承Activity(或它的子類CompatAcvitity)。這里MainActivity繼承自Activity(也可以繼承自CompatActivity)
{
@Override
protected void onCreate(Bundle savedInstanceState) //onCreate()方法是創(chuàng)建一個(gè)活動(dòng)時(shí)必須要執(zhí)行的方法
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //setContentView()方法是給當(dāng)前活動(dòng)引用一個(gè)布局
Log.d("MainActivity","onCreate execute"); //Log打印日志
}
}
為活動(dòng)在AndroidManifest.xml中注冊(cè)
任何活動(dòng)都必須在AndroidManifest.xml中注冊(cè)?;顒?dòng)注冊(cè)要放在<application>標(biāo)簽內(nèi),通過(guò)<acvitity>標(biāo)簽進(jìn)行注冊(cè)。此標(biāo)簽內(nèi)<intent-filter>標(biāo)簽內(nèi)的代碼表示當(dāng)前活動(dòng)為主活動(dòng)(啟動(dòng)器點(diǎn)開(kāi)app圖標(biāo)首先加載這個(gè)活動(dòng))。
<activity
android:name=".MainActivity" //要注冊(cè)的活動(dòng)
android:label="@string/app_name" > //給活動(dòng)指定名稱,出現(xiàn)在布局頂部(在這里也會(huì)成為應(yīng)用名稱)
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> //標(biāo)簽內(nèi)代碼指定當(dāng)前活動(dòng)為主活動(dòng)
</activity>
活動(dòng)中使用Toast語(yǔ)句
Toast語(yǔ)句是一種非常好的提醒語(yǔ)句,可以將一些短小的消息提醒給用戶,一會(huì)自動(dòng)消失。
在活動(dòng)中的onCreate()方法中添加如下代碼為按鈕增加一個(gè)Toast語(yǔ)句
Button b=(Button)findViewById(R.id.button111); //button111是元素標(biāo)識(shí)符
b.setOnClickListener(new View.OnClickListener()
{
public void onClick(View V)
{
Toast.makeText(MainActivity.this,"呵呵",Toast.LENGTH_SHORT).show(); //MainActivity是活動(dòng)名稱
}
}); //為按鈕增加一個(gè)提示語(yǔ)句
在活動(dòng)中使用Menu菜單
在res目錄下新建一個(gè)menu文件夾,然后建立一個(gè)xml為后綴的文件,下例代碼為xml內(nèi)代碼。
<item //創(chuàng)建具體的某一菜單項(xiàng)
android:id="@+id/a" //給菜單項(xiàng)指定唯一標(biāo)識(shí)符
android:title="第一"/> //菜單項(xiàng)名稱
<item
android:id="@+id/b"
android:title="菜單"/>
在AndroidManifest.xml文件中的活動(dòng)類下代碼
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main1,menu);
return true;
} //聲明一個(gè)menu菜單
點(diǎn)擊事件代碼
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.a:
Toast.makeText(this,"我去",Toast.LENGTH_LONG).show();
break;
case R.id.b:
Toast.makeText(this,"不去",Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
} //菜單選項(xiàng)事件
銷毀活動(dòng)
銷毀活動(dòng)按返回(back)按鈕,或者在java文件中使用finish()方法
Button b=(Button)findViewById(R.id.button111);
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View V)
{
Toast.makeText(MainActivity.this,"呵呵",Toast.LENGTH_SHORT).show(); //提示語(yǔ)句
finish(); //銷毀當(dāng)前活動(dòng)
}
}); //為按鈕增加一個(gè)提示語(yǔ)句
用Intent在活動(dòng)之間穿梭
Intent是安卓程序各組件之間進(jìn)行交互的重要方式。他不僅可以指明當(dāng)前組件想要執(zhí)行的動(dòng)作,還可以在不同組件之間傳遞數(shù)據(jù)。Intent一般可被用于啟動(dòng)活動(dòng),啟動(dòng)服務(wù)和發(fā)送廣播等場(chǎng)景。Intent分為顯式Intent和隱式Intent
顯式Intent
Intent有多個(gè)構(gòu)造函數(shù)的重載,其中一個(gè)是
Intent(Context packageContext,class<?>cls)這個(gè)構(gòu)造函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)Context要求提供一個(gè)啟動(dòng)活動(dòng)的上下文。第二個(gè)參數(shù)class指定想要啟動(dòng)活動(dòng)目標(biāo)。通過(guò)這個(gè)構(gòu)造函數(shù)就可以構(gòu)建出Intent的“意圖”。在Activity類中提供了startActivity()方法來(lái)使用Intent。這個(gè)方法專門(mén)用來(lái)啟動(dòng)活動(dòng)。它接收一個(gè)Intent參數(shù)。將構(gòu)建好的Intent傳入startActivity()方法就可以啟動(dòng)目標(biāo)活動(dòng)了。
Button b=(Button)findViewById(R.id.button111);
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View V)
{
Intent intent=new Intent(MainActivity.this,CanActivity.class); //跳轉(zhuǎn)活動(dòng)
startActivity(intent);
MainActivity.this.finish(); //跳轉(zhuǎn)活動(dòng)后銷毀當(dāng)前活動(dòng)
}
}); //為按鈕增加活動(dòng)跳轉(zhuǎn)