跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

概念

Activity 是与用户交互的入口点,简单来说 Activity 类似于一个 Web 的页面,表示拥有整个屏幕的界面

电子邮件应用可能有一个显示新电子邮件列表的 Activity、一个用于撰写电子邮件的 Activity 以及一个用于阅读电子邮件的 Activity。所以,一个 App 拥有多个 Activity。而一个 Web App 也是由多个页面组成的。

尽管这些 Activity 通过协作在电子邮件应用中形成一种紧密结合的用户体验,但每个 Activity 都独立于其他 Activity 而存在。因此,其他应用可以启动其中这个应用中的任何一个 Activity(如果电子邮件应用允许)。

也就是说,A 应用中的某个 Activity 在允许的情况下,可以被 B 应用的某个 Activity 调用。例如,相册应用可以点击分享按钮给你的 QQ 好友。

案例

通过Intent做一个简单的应用内 A Activity 跳转到 B Activity,并展示消息在 B Activity 的案例。

Intent是在相互独立的组件(比如两个 Activity)之间提供运行时绑定功能的对象。可以应用于两个应用间的通讯交互,也能够应用于在同一个应用下不同组件的交互(Activity、Service、Broadcast Receiver)。

MainActivity

界面代码

<EditText
  android:id="@+id/editText"
  android:layout_width="200dp"
  android:layout_height="wrap_content"
  android:layout_marginStart="104dp"
  android:layout_marginTop="340dp"
  android:hint="@string/input_hint"
  app:layout_constraintStart_toStartOf="parent"
  app:layout_constraintTop_toTopOf="parent" />

<Button
  android:id="@+id/routeButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_marginStart="160dp"
  android:layout_marginTop="72dp"
  android:onClick="sendMessage"
  android:text="@string/button_text"
  app:layout_constraintStart_toStartOf="parent"
  app:layout_constraintTop_toBottomOf="@+id/editText" />

Button 控件绑定点击事件sendMessage

逻辑代码

public class MainActivity extends AppCompatActivity {
  public static final String EXTRA_MESSAGE = "com.example.Message";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }

  public void sendMessage(View view) {
    Intent intent = new Intent(this, MessageActivity.class);
    EditText editText = findViewById(R.id.editText);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
  }
}

MessageActivity

界面代码

<TextView
  android:id="@+id/textView"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="80sp" />

逻辑代码

public class MessageActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_message);

    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    TextView textView = findViewById(R.id.textView);
    textView.setText(message);
  }

}

演示效果

image

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。