2013-06-30 59 views
1

在Eclipse中使用向导创建新的Android活动时,似乎必须创建新布局。每当我使用现有布局创建新的Android活动时,我必须创建一个虚拟布局,使用setContentView()更改onCreate()中的布局,然后删除虚拟布局。可以使用现有布局创建新的Android活动吗?

这样做的最好方法是什么?

+1

您是否可以复制现有活动并将其作为新的活动粘贴到eclipse中而不是始终使用向导? –

+0

如果我这样做,我将不得不手动修改AndroidManifest.xml。我觉得它不会更好。 – Hong

+0

哦,我忘了那部分。 :-) –

回答

1

编辑后的文章:如果你点击File> New> Other,你可以选择“Android> Android Activity”。 点击下一步,并填写正确的数据。如果您到达“预览”部分,则可以选择必须执行的更改。我调用了新的活动“SecondActivity”,这意味着布局文件将被称为“second_activity.xml”。如果您在列表中取消选中该文件,则不会创建该文件。然后,将您的setContentView更改为您想要的文件。

+0

是的,这正是我正在寻找的。每次我创建文件时,我都觉得很糟糕,然后删除它。 – Hong

+0

我已经尝试了两次,尽管没有选中它,向导仍然会创建一个新的布局文件。我想知道它是否是一个错误。 – Hong

0

你太依赖eclipse巫师了。成为程序员。右键单击包添加新的“类”给它一个名字。扩展活动。覆盖onCreate方法。在设置内容视图中,使用已创建的布局。 祝你好运,快乐的编码。

编辑:这里有确切的说明

右键单击你的包。点击新建。选择类。

为班级命名,点击确定。

package com.example.fakeapp; 

public class FakeActivity { 

} 

现在扩展Activity添加onCreate和onCreateOptionsMenu使用您在设置内容视图中需要的布局。

package com.example.fakeapp; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 

public class FakeActivity extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.other_activity); //use whatever layout you want. 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

添加到标签之间的清单不要忘记在你的res/strings中创建标题。

<activity 
     android:name="com.example.fakeapp.Fakeactivity" 
     android:label="@string/title_activity_fakeactivity" > 
    </activity> 

我并不是故意要傲慢自大。我想说的是了解巫师正在做什么,以便您可以重新创建它,而不是依靠它来为您做所有事情。如果你害怕编辑清单,那么这是你需要学习的东西。

+1

他不想丢失清单更新的设施。你的回答有点傲慢。 –

+0

你为什么不能自己更新清单。添加活动非常简单。您可以避免创建额外的垃圾布局,然后不得不删除它。 – doubleA

+0

感谢您的详细说明。我的目的是要找到使用现有布局创建新活动的最快和最有力的方法。 – Hong

相关问题