簡體   English   中英

如何在 Android Studio 中將活動“鏈接”到 java class

[英]How to 'link' an activity to a java class in Android Studio

因此,我試圖圍繞 Android Studio 進行思考,但我發現一些非常令人困惑的事情。 當您進行一項新活動時,它還會創建一個 Java class,但將任何內容編碼到該 java ZA2F2ED4F8EBC2CBB4 似乎什么都做不了。 然而,將一些東西編碼到 MainActivity 中。

示例名稱

MainActivity SecondActivity main_activity second_activity

在 second_activity 中為(例如按鈕)添加 onClick 事件,它檢查 MainActivity class 中的公共 void onClickName(){ } 而不是 SecondActivity ZA2F2ED4F8EBC2CBB4C21A29DC40AB61 有什么地方我必須改變嗎?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:text=""
    android:hint="Player name here"
    android:layout_alignParentTop="true"
    android:id="@+id/txtName"
    android:layout_toStartOf="@+id/btnAddPlayer" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Back to Main menu"
    android:id="@+id/button"
    android:layout_alignParentBottom="true"
    android:layout_alignParentStart="true"
    android:onClick="backToMain"/>

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spnCharacters"
    android:layout_below="@+id/txtName"
    android:layout_marginTop="56dp"
    android:layout_alignParentEnd="true"
    android:background="@drawable/bg_key"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Add Player"
    android:id="@+id/btnAddPlayer"
    android:layout_alignBottom="@+id/txtName"
    android:layout_alignParentEnd="true"
    android:onClick="addPlayer"/>

然而,SecondActivity 中的 addPlayer 和 backToMain 都沒有做任何事情,但是如果在 MainActivity 他們做我編寫的任何代碼

SecondActivity onCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_activity);
}

\\ 確保 Java 文件連接到 XML 文件

Java 文件的第一行應該顯示如下內容

public class balance extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_balance);
}

這意味着我的類(Java 文件)余額連接到活動(布局)activity_balance。

如果不是這種情況,請確保您從(文件>新建>活動>(例如空白活動)添加新活動)

希望這可以幫助

Activity “是用戶可以做的單一、專注的事情。”。 開發時make an Activity的內部其實就是幾個action的bundle:

  1. 創建一個直接或間接擴展 Activity的 Java 類(例如, AppCompatActivity )。
  2. 創建相應的布局文件(這不是必需的,您可以使用Java動態生成該類內部的布局)。
  3. AndroidManifest.xml注冊此Activity ,使用像<activity android:name=".NecessaryActivityName" android:label="@string/optional" android:icon="@drawable/optional"/>的新標簽,或者您可以指定此Activity更多詳細信息,例如<intent-filter>

所以,

當您創建一個新活動時,它也會創建一個 Java 類。

是的。 更好的描述是,“當你創建一個新的Activity ,你正在創建一個擴展Activity的 Java 類”。

但是將任何內容編碼到該 java 類中似乎沒有任何作用。

“活動是用戶可以做的單一、專注的事情。”。 當您單擊 Launcher(Android 的“桌面”)上的應用程序圖標時,您正在啟動相應的 Activity(更准確地說, 向該 Activity發送Intent )。

當你創建另一個活動,你願意有Intent啟動它,加入一個啟動器圖標,或者從其他活動(例如,重定向MainActivity )。 將它添加到 Launcher 的方法由 @J0B 發布,通過在AndroidManifest.xml添加<intent-filter>作為<activity>的子項。 從另一個 Activity 重定向的方式是構建一個Intent然后調用startActivity() ,例如在 Java 中:

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);

每個 Android 應用程序都包含活動。 每個活動都在 AndroidManifest.xml 中聲明,例如 main_activity.xml 和 MainActivity.java 是一個“活動”。 java類,接口...可以在活動的java控制器部分正常使用。

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

應該是首先啟動的活動的一部分。

為了解決這個問題,只需 go 到您的 activity_second 並在您的 java 文件(SecondActivity)中引用您的 activity_second 之前使用任何調色板工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM