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