1

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);:メインを解決できないか、フィールドではありません

4

2 に答える 2

1

すべてのアクティビティを同じパッケージにまとめる場合は、マニフェスト ファイルでパッケージ宣言なしでアクティビティを定義する必要があります。例

<?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>

次に、インテントを使用して別のアクティビティ内でそのアクティビティを呼び出す必要があります。次のように WorldClockApplication アクティビティから WorldClockHomeActivity を呼び出しているとします。

  Intent myIntent=new Intent(WorldClockApplication.this,WorldClockHomeActivity.class);
  startActivity(myIntent);

次に、プロジェクトでエラーが発生しないように、プロジェクトをクリーンアップして更新します。エラーが発生した場合

 setContentView(R.layout.main);

つまり、マニフェスト ファイルにない res/strings または res/layout または res/drawable フォルダーに問題があることを意味します

于 2012-07-14T06:58:05.457 に答える
0

使用している場合はEclipse、プロジェクトで新しいパケットを作成し、そこにアクティビティ ファイルをドラッグ アンド ドロップします。必要な変更はすべて Eclipse が処理します。

質問に投稿したように、変更はディレクトリ構造とマニフェストにあります。

;を通じて、通常どおりアクティビティを起動できます (または新しいアクティビティをアクティビティIntentsに送信できます) 。Intent(context, YourActivity.class)

ただし、アクティビティを移動するのではなく、他のJava クラスを個別のパッケージにまとめます。

于 2012-07-14T06:32:21.280 に答える