如何更改Android Studio中的第一个活动?

问题描述:

我想改变我的第一个活动,首先我有名为MainActivity的活动。我添加名为ActivityFirst的新活动。当然,我必须更改AndroidManifest.xml。以前我有androidManifest这样的:如何更改Android Studio中的第一个活动?

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="edmt.dev.androidsimsimi"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     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> 

</manifest> 

后,我加入我的新的活动,也是我改变我的androidManifest文件。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="edmt.dev.androidsimsimi"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

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

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

</manifest> 

我很困惑我在添加ActivityFirst后放置MainActivity的位置。这是我的ActivityFirst.java

public class ActivityFirst extends AppCompatActivity { 

    private Button mulai; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_first); 

    mulai = (Button) findViewById(R.id.mulai); 

    mulai.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(ActivityFirst.this, MainActivity.class); 
      startActivity(intent); 
     } 
    }); 
    } 
} 
+0

也许这是一个有用的链接? [链接](https://stackoverflow.com/questions/3631982/change-applications-starting-activity#3632061) – PMiner

你需要<activity>标签在应用程序的清单文件中的每个活动所提到here in the docs

所有活动必须在 清单文件中的元素来表示。任何没有被宣布的将不会被 系统看到,并且将永远不会运行。

所以你的情况,这将会是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="edmt.dev.androidsimsimi"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

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

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

</manifest> 

在Android中,当应用程序启动您的清单文件被标记LAUNCHER的第一项活动展示。

您只需更改启动器活动即可在活动标记内添加一个intent-filter标记。

因此,如果您的活动标记是自动关闭的,您可以更改它并在标记内添加意图过滤器标记。

下面是一个例子。

<activity android:name=".MainActivity" /> 
<activity android:name=".ActivityFirst"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

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

在清单上面的代码将使ActivityFirst发射活动,

,而下面的代码将使MainActivity发射活动。

<activity android:name=".ActivityFirst" /> 
<activity android:name=".MainActivity"> 
<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 

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

我希望这有助于。