Android開(kāi)發(fā)筆記之Intent初級(jí)學(xué)習(xí)教程
本文講述了Android開(kāi)發(fā)筆記之Intent初級(jí)學(xué)習(xí)教程。分享給大家供大家參考,具體如下:
項(xiàng)目創(chuàng)建步驟:
New Android Project->
Project name:Intent
Build Target:Android 2.2
Application name:IntentDemo
Package name:com.b510.intent.activity
Create Activity:MainActivity
Min SDK Version:8
Finish
1、撥打電話
按一個(gè)按鈕,啟動(dòng)打電話程序
2、編輯main.xml
<!-- 打電話按鈕 --> <Button android:id="@+id/mainBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/mainBtn" />
3、編輯MainActivity.java文件
/*
* 定義一個(gè)mainBtn變量
*/
private Button mainBtn=null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//從R.java文件中通過(guò)id找到main.xml文件中配置的Button
mainBtn=(Button)findViewById(R.id.mainBtn);
//設(shè)置Button的當(dāng)點(diǎn)擊時(shí)的監(jiān)聽(tīng)器
mainBtn.setOnClickListener(listener);
}
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View v) {
//申明一個(gè)Intent
Intent intent=new Intent();
//設(shè)置Action為打電話
intent.setAction(Intent.ACTION_CALL);
//給5554手機(jī)打電話,號(hào)碼前面的"tel:"是必須有的字段
intent.setData(Uri.parse("tel:5554"));
//啟動(dòng)Activity
startActivity(intent);
}
};
}
4、編輯AndroidManifest.xml文件
</application> <!-- 添加允許打電話的功能 的權(quán)限--> <uses-permission android:name="android.permission.CALL_PHONE"/>
5、發(fā)送短信
發(fā)送短信和撥打電話類(lèi)似
5.1、修改MainActivity.java文件
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View v) {
//申明一個(gè)Intent
Intent intent=new Intent();
//設(shè)置Action為打電話
intent.setAction(Intent.ACTION_CALL);
//給5554手機(jī)打電話,號(hào)碼前面的"tel:"是必須有的字段
intent.setData(Uri.parse("tel:5554"));
//啟動(dòng)Activity
startActivity(intent);
}
};
5.2、修改AndroidManifest.xml文件
<!-- 添加允許發(fā)送短信的功能的權(quán)限 --> <uses-permission android:name="android.permission.SEND_SMS"/>
6、啟動(dòng)新的Activity
前面說(shuō)到用Intent來(lái)?yè)艽螂娫捄桶l(fā)送短信,主要是介紹了Intent的一些簡(jiǎn)單方法,這里Intent啟動(dòng)了另一個(gè)Activity,在之前的內(nèi)容都是在一個(gè)Activity中進(jìn)行操作的。但是在實(shí)際應(yīng)用中,我們會(huì)有很多個(gè)Activity,如何從一個(gè)Activity跳到其他的Activity,這時(shí)就需要用到Intent了,既然有多個(gè)Activity,那么我們就要?jiǎng)?chuàng)建另一個(gè)Activity文件,如:HongtenActivity.java
6.1、編輯hongten.xml文件
<TextView android:id="@+id/hongtenText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <!-- 跳轉(zhuǎn)到另一個(gè)MainActivity --> <Button android:id="@+id/hongtenBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hongtenBtn" />
6.2、編輯HongtenActivity.java文件
public class HongtenActivity extends Activity {
/*
* 定義一個(gè)hongtenBtn變量
*/
private Button hongtenBtn = null;
/*
* 定義一個(gè)hongtenText變量
*/
private TextView hongtenText = null;
public final static int RESULT_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hongten);
// 首先獲得從MainActivity類(lèi)傳遞過(guò)來(lái)的Intent
Intent intent = getIntent();
// 在MainActivity那邊是setExtras(name,key)
// 在這里就是getExtras()了,他的返回類(lèi)型是一個(gè)Bundle類(lèi)型
Bundle bundle = intent.getExtras();
String text = bundle.getString("str");
hongtenText = (TextView) findViewById(R.id.hongtenText);
hongtenText.setText(text + "這是從MainActivity類(lèi)傳遞過(guò)來(lái)的參數(shù)");
hongtenBtn = (Button) findViewById(R.id.hongtenBtn);
hongtenBtn.setOnClickListener(backMainActivity);
}
private OnClickListener backMainActivity = new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(HongtenActivity.this, MainActivity.class);
intent.putExtra("back", "Hello MainActivity");
// 啟動(dòng)Activity
// startActivity(intent);
setResult(RESULT_CODE, intent);
// 結(jié)束HongtenActivity類(lèi),返回到MainActivity類(lèi),
//并且把名字為"back"參數(shù)的字符串傳遞到MainActivity類(lèi)中
//同時(shí)會(huì)調(diào)用MainActivity類(lèi)中的onActivityResult()方法
finish();
}
};
}
6.3、修改AndroidManifest.xml文件
<activity android:name=".HongtenActivity" android:label="@string/hongtenBtn"> </activity>
6.4、編輯MainActivity.java文件
/*
* 定義一個(gè)goToActivityBtn變量
*/
private Button goToActivityBtn=null; goToActivityBtn=(Button)findViewById(R.id.goToActivityBtn);
goToActivityBtn.setOnClickListener(goToOtherActivity);
private OnClickListener goToOtherActivity=new OnClickListener() {
@Override
public void onClick(View v) {
//申明一個(gè)Intent
Intent intent=new Intent();
//跳轉(zhuǎn)到命名為HongtenActivity的Activity
intent.setClass(MainActivity.this, HongtenActivity.class);
//把"Hello HongtenActivity"字符串以名字為"str"作為參數(shù)傳遞到HongtenActivity類(lèi)中
intent.putExtra("str", "Hello HongtenActivity");
//啟動(dòng)Activity
//startActivity(intent);
startActivityForResult(intent, REQUEST_CODE);
}
};
/**
* <li><b>參數(shù):</b></li></br>
* <h3>requestCode: 是上面REQUEST_CODE</h3></br>
* <h3>resultCode: 是HongtenActivity類(lèi)中的RESULT_CODE</h3></br>
* <h3>data: 是HongtenActivity類(lèi)中傳遞過(guò)來(lái)的參數(shù)</h3>
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//這里是和MainActivity中的定義的REQUEST_CODE比較
//如果我們?cè)贛ainActivity類(lèi)中有不止一個(gè)Button時(shí),
//都調(diào)用了startActivityForResult()方法,那么我們的程序就
//不知道是那個(gè)Button了,但是有了這樣的判斷,程序就能清楚的知道是那個(gè)Button
if(requestCode==REQUEST_CODE){
//這是和上面的if()語(yǔ)句有相同的道理,也是確定返回的是那個(gè)Activity的值
if(resultCode==HongtenActivity.RESULT_CODE){
//取得HongtenActivity類(lèi)中傳遞過(guò)來(lái)的信息
Bundle bundle=data.getExtras();
String text=bundle.getString("back");
//把獲得的信息顯示出來(lái)
Toast.makeText(MainActivity.this, text, Toast.LENGTH_LONG).show();
}
}
}
6.5、編輯string.xml文件
<string name="hello">Hello World, MainActivity!</string> <string name="app_name">IntentDemo</string> <string name="hongtenBtn">去向MainActivity</string> <string name="goToActivityBtn">去向HongtenActivity</string> <string name="secondBtn">second</string> <string name="mainBtn">Call</string>
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android開(kāi)發(fā)中Intent傳遞對(duì)象的方法分析
- Android中Intent傳遞對(duì)象的兩種方法Serializable,Parcelable
- Android中使用Intent在Activity之間傳遞對(duì)象(使用Serializable或者Parcelable)的方法
- Android編程使用Intent傳遞對(duì)象的方法分析
- Android使用Intent啟動(dòng)其他非系統(tǒng)應(yīng)用程序的方法
- 詳解Android中Intent對(duì)象與Intent Filter過(guò)濾匹配過(guò)程
- 詳解Android中Intent的使用方法
- Android中Intent習(xí)慣用法
- 詳解Android中IntentService的使用方法
- 深入學(xué)習(xí)Android中的Intent
- Android 廣播大全 Intent Action 事件詳解
- Android編程開(kāi)發(fā)之打開(kāi)文件的Intent及使用方法
- Android之Intent附加數(shù)據(jù)的兩種實(shí)現(xiàn)方法
- 從源碼剖析Android中的Intent組件
相關(guān)文章
Android中自定義對(duì)話框(Dialog)的實(shí)例代碼
這篇文章介紹了Android中自定義對(duì)話框(Dialog)的實(shí)例代碼,有需要的朋友可以參考一下2013-08-08
Android實(shí)現(xiàn)完整游戲循環(huán)的方法
這篇文章主要介紹了Android實(shí)現(xiàn)完整游戲循環(huán)的方法,以實(shí)例代碼形式較為詳細(xì)的分析了Android游戲循環(huán)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
Android音頻錄制MediaRecorder之簡(jiǎn)易的錄音軟件實(shí)現(xiàn)代碼
這篇文章主要介紹了Android音頻錄制MediaRecorder之簡(jiǎn)易的錄音軟件實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2014-01-01
Android判斷網(wǎng)絡(luò)狀態(tài)的代碼
這篇文章主要為大家詳細(xì)介紹了Android判斷網(wǎng)絡(luò)狀態(tài)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android Studio 一鍵生成Json實(shí)體類(lèi)教程
這篇文章主要介紹了Android Studio 一鍵生成Json實(shí)體類(lèi)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
rxjava+retrofit實(shí)現(xiàn)多圖上傳實(shí)例代碼
本篇文章主要介紹了rxjava+retrofit實(shí)現(xiàn)多圖上傳實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Android程序開(kāi)發(fā)中單選按鈕(RadioGroup)的使用詳解
在android程序開(kāi)發(fā)中,無(wú)論是單選按鈕還是多選按鈕都非常的常見(jiàn),接下來(lái)通過(guò)本文給大家介紹Android程序開(kāi)發(fā)中單選按鈕(RadioGroup)的使用,需要的朋友參考下吧2016-03-03
android自定義toast(widget開(kāi)發(fā))示例
這篇文章主要介紹了android自定義toast(widget開(kāi)發(fā))示例,需要的朋友可以參考下2014-03-03
Android延遲實(shí)現(xiàn)的幾種解決方法及原理分析
這篇文章主要給大家介紹了關(guān)于Android延遲實(shí)現(xiàn)的幾種解決方法以及其中的原理分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12

