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

總結

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

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