【问题标题】:On Android, how do you switch activities programmatically?在 Android 上,如何以编程方式切换活动?
【发布时间】:2010-08-28 16:16:18
【问题描述】:

似乎我能找到的每个在活动之间切换的示例都涉及创建一个 Intent 并通过与按钮关联的 OnClickListener 传入视图的上下文。

但是,如果您只是决定需要切换活动怎么办?在我的例子中,偏好值会导致 Activity 切换。

如何在没有关联 OnClickListener 的情况下创建可导致 Activity 切换的 Intent?

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    这应该为你做:

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

    您可以从当前活动中的任何位置调用它。

    【讨论】:

    • 是否可以将活动名称作为字符串传递?
    • @Mohammad 不是根据我见过的任何公共签名,但你可以做的是使用Class.forName(fully qualified class name) 返回一个Class 对象,然后将该Class 对象传递给Intent 构造函数。
    • 创建一个读取用户输入并使用它的子字符串作为参数通过反射调用另一个类的方法将是一个糟糕的想法
    【解决方案2】:

    这取决于您希望在代码中从何处开始新活动。您需要访问 Context 引用才能启动新活动(例如:AsyncTask 中的 onPostExecute)。请查看 this

    虽然基本上是这样的。

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

    也可以是这样的

    Intent myIntent = new Intent(context, ActivityName.class);
    context.startActivity(myIntent);
    

    【讨论】:

    • 我觉得很有趣,你如何使用类名AvitivityName 做出与接受的答案完全相同的错字;)你可以在你知道的评论中指出这一点:)
    【解决方案3】:

    我有最短的版本

    startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class));
    

    【讨论】:

      【解决方案4】:
      startActivity (new Intent (Thisactivity.this, Nextactivity.class));
      

      别忘了在清单中添加活动

      <Activity android:name=".NextActivity>
      

      【讨论】:

        【解决方案5】:

        当你想切换活动时。你可以调用这些代码。

        Intent intent = new Intent(this, MyActivity.class);
        startActivity(intent);
        

        您可以在 PreferenceChangeListener 中编写此代码。

        【讨论】:

        • 你复制了其他人的答案......想出你的正确答案。
        【解决方案6】:

        您可以像这样在主活动中创建intent

        Intent intent = new Intent(FirstActivity.this, second.class);
        startActivity(intent);
        

        如果您正在等待第二个结果,那么您应该使用

        StartActivityforresult(intent,request code).

        请求代码可以是任何integer

        【讨论】:

          【解决方案7】:

          使用 PreferenceChangeListener :)

          【讨论】:

            【解决方案8】:

            首先,您需要使用布局 intro_activity_1.XML 文件为按钮创建 UI。之后使用 android:id="@+id/button" 为按钮组设置 ID

            例子:

            intro_activity_1.xml

            <Button    android:id="@+id/button"    
            android:layout_width="wrap_content"    
            android:layout_height="wrap_content"    
            android:layout_weight="1"    
            android:background="@android:color/transparent"    
            android:text="NEXT" />
            

            现在更改您的第一个活动的 java 类。在这个例子中,我们更改了 IntroActivity1.java 的 java 文件

            例子:

            IntroActivity1.java

            //header, import and package data
            
            
            public class IntroActivity1 extends AppCompatActivity {
            
            
                Button next_btn;
            
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.intro_activity_1); 
            
                       next_btn=(Button)findViewById(R.id.button);//button class
            
                       next_btn.setOnClickListener(new View.OnClickListener(){
               public void onClick(View arg0){
                   //Start new activity class
                          Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class);
                         startActivity(myIntent);
                  }
              });
            }
            

            有关活动转换器的更多详细信息,请访问:https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-13
              • 1970-01-01
              相关资源
              最近更新 更多