日韩性视频-久久久蜜桃-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

總結

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

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

主站蜘蛛池模板: 亚洲free性xxxx护士白浆 | 91看毛片 | 国产精品久久一区二区三区动 | 91麻豆精品91久久久久同性 | 国产又黄又骚 | 亚洲黄一区 | 精品少妇人妻av免费久久久 | 亚洲国产天堂 | 国产精品国产一区 | 成人福利网站在线观看 | 五月天婷婷激情视频 | 秋霞午夜鲁丝一区二区老狼 | 人与嘼交av免费 | 国产福利网站 | 久久国内偷拍 | 理论片在线观看视频 | 欧美三区 | 91小仙女jk白丝袜呻吟 | 亚洲AV无码精品色毛片浪潮 | 亚洲午夜精品久久久久久app | 国产一区二区在线精品 | 国产一区二区三区免费视频 | 国产亚洲精品久久久久动 | 黄色网页免费 | 成人毛片18女人毛片免费 | 国产激情免费 | 日韩av手机在线观看 | 日韩h在线观看 | 免费毛毛片 | 东北熟女一区二区三区 | 日韩一区二区免费视频 | 日日噜夜夜噜 | 成人午夜影片 | 午夜视频观看 | 免费成人91| 亚洲成人一二三区 | 日韩亚洲一区二区 | 综合色网站 | 欧美精品videosex极品 | 国产午夜免费视频 | 国产a一区二区三区 | 免费网站在线观看黄色 | 国产人妻一区二区三区四区五区六 | 中国女人和老外的毛片 | 亚洲男人天堂视频 | 日本精品一区二区三区视频 | 日韩精品一区二区三区视频 | 中国毛片在线 | 成人羞羞网站 | 在线资源站 | 成人免费性生活视频 | 久久午夜精品人妻一区二区三区 | 精品一区二区三区四区五区 | 久久久久久久999 | 国产精品免费无码 | 国产乱子伦精品视频 | 午夜天堂在线观看 | www.射.com | 亚洲成人中文 | 精品国产免费无码久久久 | 麻豆成人免费视频 | 日韩欧美一级大片 | 被警察猛c猛男男男 | 国产人妻一区二区 | 伊人视频在线观看 | 欧洲在线一区 | 久久影院午夜理论片无码 | 男人添女人荫蒂国产 | 脱裤吧导航 | 2021狠狠操 | 精品国产91久久久久久久妲己 | 911精品 | 欧美人与性动交ccoo | 污导航在线观看 | 青青啪啪 | 麻豆免费观看网站 | 免费av国产 | 国产精品青青草 | 色99在线| 91精品国产手机 | 亚洲国产私拍精品国模在线观看 | 欧美成人一二三区 | 在线观看视频二区 | 日本特黄一级片 | 人人艹在线观看 | 欧美 日本 国产 | 亚洲天堂手机 | 精品美女久久久久 | 国产第一页第二页 | 特黄特色特刺激免费播放 | 免费毛片一区二区三区久久久 | 成年精品 | 久久这里只精品 | 免费黄色网址在线观看 | 伊人免费视频二 | 桃花久久 | 国产精品爽爽 | 中文字幕亚洲区 | 国产a自拍 |