我必须在mainActivity.java中定义所有函数吗

我必须在mainActivity.java中定义所有函数吗,java,android,android-layout,Java,Android,Android Layout,当我在AndroidStudio中创建一个新的activity.xml文件时,它创建了一个相应的.java文件 我从新活动中设置了onClick方法调用,但它仍在mainActivity.java中寻找该方法 我想在corrosponding.java文件中定义activities方法,并将.xml与.java链接起来。如果我理解正确,那么您试图在单击按钮或其他视图时设置一个操作,但是当您单击它时,什么也没有发生。是这样吗?在我看来,您的活动与错误的.xml文件关联。仔细检查.java文件中是否

当我在AndroidStudio中创建一个新的activity.xml文件时,它创建了一个相应的.java文件

我从新活动中设置了onClick方法调用,但它仍在mainActivity.java中寻找该方法


我想在corrosponding.java文件中定义activities方法,并将.xml与.java链接起来。如果我理解正确,那么您试图在单击按钮或其他视图时设置一个操作,但是当您单击它时,什么也没有发生。是这样吗?在我看来,您的活动与错误的.xml文件关联。仔细检查.java文件中是否有setContentView中定义的正确布局

例如

在MainActivity.java中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // pay attention to this

    Button button = (Button) findViewById(R.id.button); // or else it won't know where to find the button in the layout
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this, Main2Activity.class);
            tartActivity(intent);
        }
    });

}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2); // pay attention to this too


}
在Main2Activity.java中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // pay attention to this

    Button button = (Button) findViewById(R.id.button); // or else it won't know where to find the button in the layout
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this, Main2Activity.class);
            tartActivity(intent);
        }
    });

}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2); // pay attention to this too


}

每当你在Android上创建一个新的活动时,除非你通过代码告诉它,否则它不会出现。现在,如果您查看清单文件,您将能够看到哪一个是由程序启动的活动,首字母是MainActivity.java文件它不必命名为MainActivity,但在Android中是默认的

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
如果您在添加第二个活动后查看清单文件,您将看到一个新标记,其中包含您在应用程序标记末尾之前添加的第二个活动的名称:

<activity
  android:name=".Main2Activity"
  android:label="@string/title_activity_main2"
  android:theme="@style/AppTheme">
</activity>
这意味着您的活动已在清单文件中正确注册


为了让你使用它,你需要一些东西来称呼它,比如点击按钮,激活一个意图,就像迈克尔在我上面说的那样。试着阅读基本的Android教程来了解这一点,并尝试自己实现它。android中的每个视图大部分都对应于一个活动文件,它们也可以是片段,但这是另一天的主题,与活动事件对应的大多数代码肯定需要您在活动文件中编写逻辑代码。将java文件视为控制器,xml布局视为视图,控制器文件操纵视图。

非常感谢您的回复。这对我理解这件事帮助很大。我想做的是将一个活动绑定到java文件,这样每当我调用函数时,它都会出现在相应的java文件中,而不是主活动中。很高兴我能提供帮助,不要泄气,继续尝试理解Android文档和其他教程。它们可能很复杂,但绝对值得去理解。至于函数的绑定,试着做一些类似于教程中所做的事情,或者Michael所说的:不能出错!干杯,谢谢你的回答。我想我得先从基础做起