如何将我的Activity设置为android中的主要活动?

时间:2012-03-14 15:28:50

标签: android android-manifest android-activity main-activity

我想将自己的活动创建为主要活动,而不是使用默认的MainActivity

如何在android清单中定义?

5 个答案:

答案 0 :(得分:62)

在您的清单文件中,使用以下代码将活动声明为启动器活动:

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

来自Android Developer docs:

  

ACTION_MAIN活动:作为任务的初始活动启动,没有数据输入且没有返回输出。

     

CATEGORY_LAUNCHER:活动可以是任务的初始活动,并列在顶级应用程序启动器中。

答案 1 :(得分:13)

在应用程序标记内的AndroidManifest.xml文件中添加一个活动标记,并从默认的旧活动标记集中删除操作MAIN

 <application...... >
    <activity
        android:name=".DefaultActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".NewActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

 </application>

答案 2 :(得分:6)

您可以在清单文件中使用:

<activity
    android:name=".DefaultActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.DEFAULT" />
    </intent-filter>
</activity>
<activity
    android:name=".NewActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity> 

非常重要:

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

答案 3 :(得分:2)

很简单。在你的Android清单文件中添加,

<activity
    android:name="Your Activity Name"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

答案 4 :(得分:1)

public class MainActivity extends Activity implements OnTouchListener{ private ImageView wheel; private double mCurrAngle = 0; private double mPrevAngle = 0; ImageView bask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wheel=(ImageView)findViewById(R.id.imageView1); wheel.setOnTouchListener(this); } @Override public boolean onTouch(final View v, MotionEvent event) { final float xc = wheel.getWidth() / 2; final float yc = wheel.getHeight() / 2; final float x = event.getX(); final float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { wheel.clearAnimation(); mCurrAngle = Math.toDegrees(Math.atan2(x - xc, yc - y)); break; } case MotionEvent.ACTION_MOVE: { mPrevAngle = mCurrAngle; mCurrAngle = Math.toDegrees(Math.atan2(x - xc, yc - y)); animate(mPrevAngle, mCurrAngle, 0); System.out.println(mCurrAngle); break; } case MotionEvent.ACTION_UP : { mPrevAngle = mCurrAngle = 0; break; } } return true; } private void animate(double fromDegrees, double toDegrees, long durationMillis) { final RotateAnimation rotate = new RotateAnimation((float) fromDegrees, (float) toDegrees, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f); rotate.setDuration(durationMillis); rotate.setFillEnabled(true); rotate.setFillAfter(true); wheel.startAnimation(rotate); System.out.println(mCurrAngle); } } 中,您可以在类定义之上添加Xamarin,如下所示:

MainLauncher = true