日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【第一行代码笔记】(一)

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【第一行代码笔记】(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android 系統框架

1. Linux 內核層:為硬件提供底層的驅動,如顯示驅動,音頻驅動,照相機驅動,藍牙驅動。

2.系統運行庫層:通過C/C++庫來為android系統提供主要的特性支持,如SQLite庫提供數據庫的支持,OpenGL|ES庫提供了3D繪圖的支持,WebKit庫提供了瀏覽器內核的支持,同時,這一層還有Android運行時庫,Android運行時庫還包含了Dalvik虛擬機,它使得每一個Android應用都能運行在獨立的進程當中,并且擁有自己的Dalvik虛擬機實例。

3.應用框架層:提供構建應用程序可能用到的各種API.

4.應用層:所有安裝在手機上的應用

Android 四大組件

活動Activity,服務Service,廣播接收器Broadcast Receiver,內容提供者 Content Provider

在活動中使用Menu

首先在res下的menu文件夾下,新建xml文件,每個item標簽中定義一個菜單項

然后重寫onCreateOptionMenu(Menu menu)方法,

public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}

返回true表明允許創建的菜單顯示出來,如果返回了false,創建的菜單則無法顯示。

接下來定義菜單的響應事件。

public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case value:break;default:break;}return super.onOptionsItemSelected(item);}

根據不同的id對不同的菜單項做出相應的響應。

使用Intent在活動之間穿梭

Intent是Android程序中各組件之間進行交互的一種重要方式,它不僅可以指明當前組件想要執行的動作,還可以在不同組件指甲傳遞數據。Intent的用法大致可以分成兩種,顯式Intent和隱式Intent

1.使用顯式Intent

Intent(Context packageContext,Class<?> cls)

接受兩個參數,第一個參數 Context 要求提供一個啟動活動的上下文,第二個參數Class則是指定想要啟動的目標活動,通過這個構造函數就可以構造出Intent的意圖

通過startActivity(Intent intent)啟動目標活動

2.使用隱式Intent

不明確指出我們想要啟動哪一個活動,而是指定了一系列更為抽象的action和category等信息,然后交由系統去分析這個Intent并找出合適的活動去啟動。

什么叫合適的活動呢,簡單來講就是可以響應我們這個隱式Intent的活動,

通過在<activity>標簽下配置<intent-filter>的內容,可以指定當前活動能夠響應的action和category。只有<action>和<actegory>中的內容同時能夠匹配上Intent中指定的action和category時,這個活動才能響應該Intent

<category>標簽包含了一些附加信息,更精確的指明當前活動。

Intent intent = new Intent("android.intent.action.MAIN");這是Intent的另外一個構造函數,直接將action的字符串傳了進去。

每一個Intent中只能指定一個action,但卻能指定多個category

調用Intent中的addCategory()方法來添加一個category

?

使用隱式Intent不僅可以啟動自己程序內的活動,還可以啟動其他程序的活動,這使得Android多個應用程序之間的功能共享成為了可能。

Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("https://www.baidu.com")); startActivity(intent);

setData方法接收一個Uri對象,主要用于指定當前Intent正在操作的數據,而這些數據通常都是以字符串的形式傳入到Uri.parse()方法中解析產生的。

與此對應,我們還可以在<intent-filter>標簽中再配置一個<data>標簽,用于更精確地指定當前活動能響應什么類型的數據。<data>標簽中主要可以配置以下內容:
1.android:scheme:用于指定數據的協議部分

2.android:host:用于指定數據的主機名部分

3.android:port:用于指定數據的端口部分

4.android:path用于指定主機名和端口之后的部分

5.android:mimeType:用于指定可以處理的數據類型,允許使用通配符的方式進行指定

只有<data>標簽中的指定內容和Intent中攜帶額Data完全一致時,當前活動才能夠響應該Intent

?

button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse("tel:10086"));startActivity(intent);}});

點擊按鈕之后,會啟動撥號應用

?

向下一個活動傳遞數據

Intent中提供了一系列putExtra()方法的重載,可以把我們想要的傳遞的數據暫存在Intent中,啟動了另一個活動后,只需要把這些數據再從Intent中取出就可以了

String data = "Hello WebActivity";Intent intent = new Intent(MainActivity.this, WebActivity.class);intent.putExtra("extra_data", data);startActivity(intent); TextView tv = (TextView) findViewById(R.id.textView1);Intent intent = getIntent();String data = intent.getStringExtra("extra_data");tv.setText(data);

返回數據給上一個活動

startActivityForResult()方法接收兩個參數,第一個參數是Intent,第二個參數是請求碼,用于在之后的回調中判斷數據的來源。

mainActiviyt

button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String data = "Hello WebActivity";Intent intent = new Intent(MainActivity.this, WebActivity.class);startActivityForResult(intent, 1);}});

回調函數:

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {switch (requestCode) {case 1:if (resultCode == RESULT_OK) {String returnedData = data.getStringExtra("data_extra");Toast.makeText(getApplicationContext(), returnedData,Toast.LENGTH_SHORT).show();}break;default:break;}}

WebActivity.java

button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.putExtra("data_extra", "Hello MainActivity");setResult(RESULT_OK, intent);finish();}});

setResult()方法接收兩個參數,第一個參數用于向上一個活動返回處理結果。一般只使用 RESULT_OK或者RESULT_CANCELED這兩個值,第二個參數則是把帶有數據的Intent傳遞回去

onActivityResult()方法帶有三個參數,第一個參數是requestCode,即我們在啟動活動時傳入的請求碼。第二個參數resultCode,即我們在返回數據時傳入的處理結果,第三個參數,data,即寫在這返回數據的Intent

首先通過檢查reaestCode的值來判斷數據來源,確定數據來源之后,再通過resultCode的值來判斷處理結果是否成功。

如果想通過back鍵返回數據,可以通過重寫onBackPressed()方法來解決問題        

?

轉載于:https://www.cnblogs.com/six-moon/p/4642113.html

總結

以上是生活随笔為你收集整理的【第一行代码笔记】(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲逼逼 | 日韩在线观看网站 | 欧美视频在线一区二区三区 | 国产做受91 | 97视频在线免费 | 在线观看免费黄色小视频 | 一区在线观看 | 久草视频观看 | 国内精品视频 | 久久久久久亚洲精品中文字幕 | 天天综合久久综合 | 免费看一级黄色大片 | 亚洲性猛交富婆 | 欧美视频精品 | 俄罗斯一级片 | 乱子伦一区二区三区 | 男人的天堂在线视频 | xzjzjzjzjzj欧美大片 | 四虎伊人 | www.国产毛片 | 亚洲区 欧美区 | 亚洲色视频 | 国产精品日韩专区 | 久久亚洲熟女cc98cm | 黑人操日本 | 亚洲AV第二区国产精品 | 国产精品v欧美精品v日韩 | 91免费在线看| av资源在线| 五月婷婷av| 凹凸精品熟女在线观看 | 奶水喷溅虐奶乳奴h文 | 日本中文字幕不卡 | 嫩草网站在线观看 | www.在线| 91国内产香蕉 | 日本免费毛片 | 欧美熟妇精品久久久久久 | 久久婷婷国产麻豆91天堂 | 69亚洲精品久久久蜜桃小说 | 97超碰97 | 亚洲深夜福利 | 欧美做爰爽爽爽爽爽爽 | 在线播放第一页 | 不卡的中文字幕 | 高h校园不许穿内裤h调教 | 欧美一区二区三区日韩 | 美梦视频大全在线观看高清 | 日本三级日本三级日本三级极 | 2019天天干 | 香蕉国产 | 一级片在线 | 伊人春色视频 | 色伊人影院 | 美女吞精视频 | 午夜三区| 久久成人网18网站 | 国产嗷嗷叫 | 久久丝袜视频 | 日干夜干天天干 | 日韩一级av毛片 | 午夜成人免费视频 | 四虎视频在线 | 四虎免看黄 | 一级欧美视频 | 国产高清99 | 中文字幕亚洲激情 | 国产精品无码一区二区三 | 中文字幕乱码人妻二区三区 | 免费av网站在线观看 | 一区二区三区在线不卡 | 在线看的免费网站 | 日本亚洲欧美在线 | 李华月全部毛片 | 青青草原伊人 | 欧美1 | 欧美日韩一级二级三级 | 欧美美女色图 | 老司机午夜在线 | 国产精品mv | 欧美操女人 | 久久影库| 成人激情社区 | 免费播放毛片精品视频 | 国产精品无码网站 | 胸网站 | 亚洲国产无线乱码在线观看 | 激情综合网激情 | 亚洲性久久| 亚洲欧洲色图 | 国产又粗又大又长 | 蜜臀av午夜精品 | 一区二区午夜 | jizz成人 | 亚洲色婷婷久久精品av蜜桃 | 四虎影库在线播放 | 久久αv | www日本高清 | 国产一区二区网 |