Android 重新组织不同文件夹中的活动

Android 重新组织不同文件夹中的活动,android,android-activity,Android,Android Activity,我想更改我的android应用程序的结构,使活动位于名为“活动”的子文件夹中。因此,我的代码结构将成为 com.example.myapp.activities.MainActivity 所有活动都将驻留在com.example.myapp.activities中 我如何做到这一点?此外,为了使其工作,必须在清单中进行哪些更改?如何从其他活动中访问其他活动类 <activity android:name=".activities.MainActivity" android:

我想更改我的android应用程序的结构,使活动位于名为“活动”的子文件夹中。因此,我的代码结构将成为

com.example.myapp.activities.MainActivity

所有活动都将驻留在com.example.myapp.activities中

我如何做到这一点?此外,为了使其工作,必须在清单中进行哪些更改?如何从其他活动中访问其他活动类

<activity
    android:name=".activities.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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


编辑:我通过拖放文件夹中的活动实现了这一点,但是现在我在
setContentView(R.layout.main)上遇到了这个错误main无法解析或不是

字段

如果您使用的是
Eclipse
在项目中创建一个新数据包,并将活动文件拖放到其中。Eclipse将负责所有必要的更改

更改在您的目录结构和清单中,正如您在问题中发布的那样

可以像往常一样通过
Intent(context,YourActivity.class)
启动活动(或者向他们发送新的
Intent


不过,我不会移动活动,而是将其他Java类组织在单独的包中。

如果您使用的是
Eclipse
在项目中创建一个新包,并将活动文件拖放到其中。Eclipse将负责所有必要的更改

更改在您的目录结构和清单中,正如您在问题中发布的那样

可以像往常一样通过
Intent(context,YourActivity.class)
启动活动(或者向他们发送新的
Intent


不过,我不会移动活动,而是将其他Java类组织在单独的包中。

如果将所有活动组织在相同的包中,则必须在清单文件中定义活动,而不需要包声明,例如

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp.activities"
android:versionCode="1"
android:versionName="1.0" >

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
    android:name=".WorldClockApplication"

    <activity
        android:name=".WorldClockHomeActivity"
        android:label="@string/app_name" >
                  <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".AddLocationActivity"/>         
    <activity   android:name=".EditPreference"/>

</application>

</manifest>
然后做清洁,刷新你的项目,你不会在你的项目中得到错误。如果在上获得错误

 setContentView(R.layout.main);

这意味着您在清单文件中没有的res/strings或res/layout或res/drawable文件夹中有问题

如果您在相同的包中组织所有活动,那么您必须在清单文件中定义没有包声明的活动,例如

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp.activities"
android:versionCode="1"
android:versionName="1.0" >

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
    android:name=".WorldClockApplication"

    <activity
        android:name=".WorldClockHomeActivity"
        android:label="@string/app_name" >
                  <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".AddLocationActivity"/>         
    <activity   android:name=".EditPreference"/>

</application>

</manifest>
然后做清洁,刷新你的项目,你不会在你的项目中得到错误。如果在上获得错误

 setContentView(R.layout.main);

这意味着您在清单文件中没有的res/strings或res/layout或res/drawable文件夹中有问题

EDIT:我通过拖放文件夹中的活动实现了这一点,但现在我在
setContentView(R.layout.main)上遇到了此错误:main无法解析或不是字段不要移动任何xml文件,它们必须位于目录中。执行清理项目,然后生成项目(如果它没有自动生成)编辑:我通过拖放文件夹中的活动实现了这一点,但现在我在
setContentView(R.layout.main)上遇到此错误:main无法解析或不是字段不要移动任何xml文件,它们必须位于目录中。请先清理项目,然后生成项目(如果它没有自动生成),然后在此类中导入您的R文件。请在此类中导入您的R文件。