2017-02-05 83 views
-1

所以基本上我创建了一个非常简单的应用程序,只有2个布局,我想从一个到另一个正确。我从我读过的东西知道如果你想在同一个项目上创建一个新的屏幕/活动,你首先必须创建新的布局(我已经做过),而且我知道现在我必须创建活动并且对宣言做些什么,但我不知道那是什么。我看过一些关于YouTube的视频,但我不知道如果我希望我的新活动成为默认视频,这个事实是否会改变任何内容。如何正确切换布局?

正如您将能够在附图中看到的,“activity_questions”是我创建项目时返回的第一个布局。现在我想为应用程序创建一个新的屏幕/布局,即“noquestions_layout”。但是,我想为用户创建我的主屏幕/活动的新布局,并且我的“activity_questions”是每当我的数据库将某些信息提供给应用程序时都会弹出的那个。

我该怎么办?我知道这是你一次只需要学习的东西之一......这听起来很简单,我很抱歉如果是新手。我不久前就开始学习android studio。

你不需要告诉我的一切,我需要把我的应用程序代码,只需用指导一些基本的例子......“在这里创建Y,然后把X有”

First layout/activity

New Wanted layout/activity

+2

请阅读Android开发人员网站上的“First App”文档。它涵盖了你刚刚提出的所有事情 –

回答

0

首先创建两个活动,比方说,Activity_A和Activity_B。

对于第一个活动,把这个代码清单:

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

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

对于第二个活动,使用此代码:当应用程序启动时

<activity android:name=".SecondActivity "> 
</activity> 

这里,启动活动由于Activity_A清单中的意图过滤器,活动_A:

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

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

N嗷嗷,既然你已经有了,布局准备,其中Activity_A是一旦应用程序启动开始你的活动,从Activity_A推出Activity_B,使用此代码:

Intent intentTour = new Intent(Activity_A.this, Activity_B.class); 
intentTour.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); //This line is optional, better to use it because it won't create multiple instances of the launching Activity. 
startActivity(intentTour); 
+0

谢谢!现在我明白它为什么会发生,以及如何去做,这正是我想要的。我感谢您对于您最后的评论,如果我想在数据库向应用程序发送一些信息时使用Activity_B,我需要做什么? –

+0

你的意思是你想在数据库向应用程序发送一些信息时启动Activity_B? –

+0

正确,对不起,如果我的网络很混乱。基本上像谷歌奖励类应用程序。 - 我的数据库将向应用程序提供一些问题,并且我希望Activity_B在收到问题时启动该问题。我已经完成了数据库(MySQL)和脚本以获取数据(php脚本) –

1

对于新的屏幕布局创建一个新的活动并在那里调用该布局文件。

要进行任何活动作为你的第一个活动的应用程序启动时,你必须去体现和削减意图过滤器标签粘贴到活动要开始第一

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

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

假设你想再拍活动实例.SecondActivity作为活动开始削减上述意图过滤器标签,并贴有这样的

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

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

     </activity> 
+0

这并不完全解答如何从一个活动转到另一个活动。 –

+0

当他在应用程序中进行一项活动开始活动时,他也对如何处理清单感到困惑。这就是答案。 – user1111

0

当您在Android的新活动Studio Studio将为您的活动创建相应的资源文件以及清单条目。

举例说,你有两个活动QuestionsActivity和NoQuestionsActivity。QuestionsActivity将成为您的默认启动活动。使NoQuestionsActivity成为您的启动活动。打开清单文件,并在NoQuestionsActivity的活动标签包括意图过滤器,并从

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

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

删除意图过滤器从一个活动切换到另一个,从NoQuestionsActivity说QuestionsActivity使用意图以下代码 -

Intent questionsIntent = new Intent(NoQuestionsActivity.this, QuestionsActivity.class); 
startActivity(questionsIntent); 

如果您想将值传递给QuestionsActivity,请将其作为intnet中的附加项传递给它。

希望这会有所帮助。