<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      大創項目個人周報(2024.7.22—2024.7.28)

      本周個人情況匯報

      我本周主要學習了安卓開發的內容,根據《第一行代碼Android》開展了學習。

      一、分析自己的第一個Android程序

      1

      • 通過看書,我對項目的各個文件的功能有了大致了解,除app目錄外,大多數文件和目錄是自動生成的,app目錄是今后開發工作主要涉及的部分。app的結構如下。

      2

      • 通過學習,我了解了項目運行的具體流程,詳解了項目中的資源,并且學習掌握日志工具的使用。

      二、學習Activity的使用

      • Activity是可以包含用戶界面的組件,主要用于和用戶進行交互。
        我手動創建了Activity并且學習創建和加載布局文件。
        3

      按鈕

      在此編輯器里,通過XML文件編輯布局,添加一個按鈕

      <Button
              android:id="@+id/button1"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="Button 1"
          />
      

      在Activity中加載布局

          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
              setContentView(R.layout.first_layout)
          }
      

      在AndroidManifest文件中注冊,以使Activity生效

      <activity
                  android:name=".FirstActivity"
                  android:exported="true"
                  android:label="This is FirstActivity">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
      

      效果如下
      4

      Toast

      • Toast是 Android 系統提供的一種非常好的提醒方式,在程序中可以使用它將一些短小的信息通知給用戶,這些信息會在一段時間后自動消失,并且不會占用任何屏幕空間。

      在onCreate中添加代碼

      val button1: Button = findViewById(R.id.button1)
              button1.setOnClickListener {
                  Toast.makeText(this, "You clicked Button1", Toast.LENGTH_SHORT).show()
      }
      

      效果如下
      5

      菜單

      在res目錄下新建menu文件,添加代碼

      <menu xmlns:android="http://schemas.android.com/apk/res/android">
          <item
              android:id="@+id/add_item"
              android:title="Add"/>
          <item
              android:id="@+id/remove_item"
              android:title="Remove"/>
      </menu>
      

      在FirstActivity中添加代碼以使菜單顯示并響應

      override fun onCreateOptionsMenu(menu: Menu?): Boolean {
              menuInflater.inflate(R.menu.main, menu)
              return true
          }
      
          override fun onOptionsItemSelected(item: MenuItem): Boolean {
              when (item.itemId) {
                  R.id.add_item -> Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show()
                  R.id.remove_item -> Toast.makeText(this,"You clicked Remove", Toast.LENGTH_SHORT).show()
              }
              return true
          }
      

      效果如下
      7
      8

      銷毀Activity

      • 將button1.setOnClickListener中的代碼改作finish()即可在按下按鈕后銷毀Activity。

      Intent

      • Intent 是 Android 程序中各組件之間進行交互的一種重要方式,它不僅可以指明當前組件想要執行的動作,還可以在不同組件之間傳遞數據。Intent一般可用于啟動Activity、啟動 Service以及發送廣播等場景。書中本節所講,即啟動Activity。

      • 顯式Intent方法如下
        首先創建SecondActivity,將布局代碼替換如下:

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">
      
          <Button
              android:id="@+id/button2"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="Button 2" />
      
      </LinearLayout>
      

      修改FirstActivity中的點擊事件

      button1.setOnClickListener {
                  val intent = Intent(this, SecondActivity::class.java)
                  startActivity(intent)
              }
      

      執行程序,效果即點擊Button1后自動跳轉到Button2.

      三、本周遇到的問題及利用chatGPT等AI工具的解決過程

      在AndroidManifest文件中手動注冊,以使Activity生效

      <activity
                  android:name=".FirstActivity"
                  android:label="This is FirstActivity">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
      

      這一部分中,我的代碼與書中示例的代碼有不同,多了一句android:exported="false",而在我試圖不改變這句代碼,直接加進去其他代碼,系統報錯無法編譯。故詢問AI。
      AI:

      "android:exported="false" 用于控制一個活動是否可以被其他應用所啟動。當設置為 "false" 時,表示該活動只能在啟動它自身應用的上下文中被訪問。也就是說,只有從同一個應用內部的其他活動、服務或廣播接收器才可啟動該活動。當設置為 "true",則表示該活動可以從其他應用進行啟動。

      如果你將一個活動的 android:exported 屬性設置為 "false",那么從外部應用點擊鏈接或通過其他應用的廣播等方式都無法啟動該活動。這種設置通常用于保護敏感功能,例如隱私相關的設置頁面、支付頁面或權限請求界面,防止外部應用濫用或不小心觸發這些功能。

      例如,假設你有一個活動專門用于顯示用戶的個人資料信息。你可能會希望控制只有從應用內部的其他功能(如用戶主頁或個人資料編輯頁面)中啟動,以確保用戶數據安全和隱私保護。在這種情況下,設置 android:exported="false" 是非常合適的。

      然而,在大多數情況下,如果一個活動需要被其他應用訪問或啟動,例如一些基本的用戶界面活動(如主頁、列表瀏覽等),通常會將其設置為 "true",以便提供更好的用戶體驗和應用集成。

      我遂將false改作true,運行正常。

      posted @ 2024-07-28 17:43  20231302邱之釗  閱讀(220)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产美女自卫慰黄网站| 国产免费高清69式视频在线观看| 亚洲综合色一区二区三区| 亚洲色欲色欲www在线看| 乐业县| 午夜精品极品粉嫩国产尤物| 中文字幕日韩国产精品| 午夜福利啪啪片| 久久中文字幕av第二页| 久久国产免费观看精品3| 一边添奶一边添p好爽视频| 人妻熟女一区无中文字幕| 国产一级精品在线免费看| 成年午夜免费韩国做受视频| 亚洲av专区一区| 粉嫩蜜臀av一区二区绯色| 人妻系列无码专区无码中出| 日本边添边摸边做边爱| 亚洲精品综合久久国产二区| 久久精品国产亚洲AⅤ无码| 亚洲av永久无码天堂影院| 久在线视频播放免费视频| 亚洲色丰满少妇高潮18p| 亚洲人成人伊人成综合网无码| 国模肉肉视频一区二区三区| 在线无码免费看黄网站| 尤物国精品午夜福利视频| 国产在线观看播放av| 国产精品欧美福利久久| 狠狠色噜噜狠狠狠777米奇小说| 国产综合色在线精品| 久久久久久无码午夜精品直播| 国产亚洲综合区成人国产| 午夜DY888国产精品影院| 阿克陶县| 国产片av在线观看国语| 国色天香成人一区二区| 湖口县| 免费无码中文字幕A级毛片| 午夜福利片1000无码免费| 亚洲av无码之国产精品网址蜜芽|