加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 数据采集、建站、AI开发硬件、专属主机、云硬盘!
当前位置: 首页 > 教程 > 正文

Android中采用Intent实现界面跳转

发布时间:2023-11-11 11:12:09 所属栏目:教程 来源:未知
导读:   Intent 信使、意图



  由Intent来协助Android各个组件之间跳转



  1、



  startActivity(intent)



  包下新建一个类,FActivity.class



  publi
  Intent 信使、意图
 
  由Intent来协助Android各个组件之间跳转
 
  1、
 
  startActivity(intent)
 
  包下新建一个类,FActivity.class
 
  public class FActivity extends AppCompatActivity {
 
      @Override
 
      protected void onCreate(Bundle savedInstanceState) {
 
          super.onCreate(savedInstanceState);
 
          setContentView(R.layout.factivity);
 
      }
 
  }
 
  新建一个XML文件factivity.xml
 
  <Button
 
      android:id="@+id/bt1"
 
      android:layout_width="match_parent"
 
      android:layout_height="wrap_content"
 
      android:text="First"/>
 
  <Button
 
      android:id="@+id/bt2"
 
      android:layout_width="match_parent"
 
      android:layout_height="wrap_content"
 
      android:text="Second"/>
 
  <TextView
 
      android:id="@+id/text1"
 
      android:layout_width="wrap_content"
 
      android:layout_height="wrap_content"
 
      android:text="Hello World!"
 
      android:layout_gravity="center"
 
      />
 
  同样在创建第二对class和xml。
 
  在AndroidManiFest中注册两个新类,并将默认启动类放在最前:
 
  <?xml version="1.0" encoding="utf-8"?>
 
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 
      package="com.bcp.layouttest">
 
      <application
 
          android:allowBackup="true"
 
          android:icon="@mipmap/ic_launcher"
 
          android:label="@string/app_name"
 
          android:supportsRtl="true"
 
          android:theme="@style/AppTheme">
 
          <activity android:name=".FActivity">
 
              <intent-filter>
 
                  <action android:name="android.intent.action.MAIN" />
 
                  <category android:name="android.intent.category.LAUNCHER" />
 
              </intent-filter>
 
          </activity>
 
          <activity android:name=".SActivity">
 
              <intent-filter>
 
                  <action android:name="android.intent.action.MAIN" />
 
                  <category android:name="android.intent.category.LAUNCHER" />
 
              </intent-filter>
 
          </activity>
 
          <activity android:name=".MainActivity">
 
              <intent-filter>
 
                  <action android:name="android.intent.action.MAIN" />
 
                  <category android:name="android.intent.category.LAUNCHER" />
 
              </intent-filter>
 
          </activity>
 
      </application>
 
  </manifest>
 
  添加按钮事件:
 
  public class FActivity extends AppCompatActivity {
 
      private Button bt_first;
 
      @Override
 
      protected void onCreate(Bundle savedInstanceState) {
 
          super.onCreate(savedInstanceState);
 
          setContentView(R.layout.factivity);
 
          /***
 
           * 点击第一个按钮实现跳转页面
 
           */
 
          bt_first= (Button) findViewById(R.id.bt1);
 
          bt_first.setOnClickListener(new View.OnClickListener() {
 
              @Override
 
              public void onClick(View view) {
 
                  
 
                  Intent intent=new Intent();
 
                  //第一个:上下文对象
 
                  //第二个:目标文件
 
                  intent.setClass (FActivity.this,SActivity.class);
 
                  startActivity(intent);
 
              }
 
          });
 
      }
 
  }
 
  2、
 
  startActivityForResult(intent,requestCode);
 
  onActivityResult(int requestCode,int resultCode,Intent data)
 
  setResult(resultCode,data);
 
  查看代码:
 
  FActivity.java
 
  public class FActivity extends AppCompatActivity {
 
      private Button bt_first;
 
      private Button bt_second;
 
      private TextView tv;
 
      @Override
 
      protected void onCreate(Bundle savedInstanceState) {
 
          super.onCreate(savedInstanceState);
 
          setContentView(R.layout.factivity);
 
          /***
 
           * 点击第一个按钮实现跳转页面
 
           */
 
          bt_first= (Button) findViewById(R.id.bt1);
 
          bt_first.setOnClickListener(new View.OnClickListener() {
 
              @Override
 
              public void onClick(View view) {
 
                  Intent intent=new Intent();
 
                  intent.setClass (FActivity.this,SActivity.class);
 
                  startActivity(intent);
 
              }
 
          });
 
          /***
 
           * 通过startActivityForresult实现
 
           */
 
          bt_second= (Button) findViewById(R.id.bt2);
 
          bt_second.setOnClickListener(new View.OnClickListener() {
 
              @Override
 
              public void onClick(View view) {
 
                  Intent intent=new Intent().setClass(FActivity.this,SActivity.class);
 
                  /***
 
                   * 第二个参数是请求的标示
 
                   */
 
                  startActivityForResult(intent,1);
 
              }
 
          });
 
          tv= (TextView) findViewById(R.id.text1);
 
      }
 
      /***
 
       * 通过startActivityForresult实现,接收返回数据的方法
 
       * 一、请求的标示
 
       * 二、第二个页面返回的标示
 
       * 三、第二个页面传回的数据
 
       */
 
      @Override
 
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 
          super.onActivityResult(requestCode, resultCode, data);
 
          //判断是否满足条件来进行回传数据
 
          if(requestCode==1&&resultCode==2){
 
              String content=data.getStringExtra("intent");
 
              tv.setText(content);
 
          }
 
      }
 
  }
 
  SActivity.java
 
  public class SActivity extends AppCompatActivity{
 
      private Button bt;
 
      private String content="Hello~!";
 
      @Override
 
      protected void onCreate( Bundle savedInstanceState) {
 
          super.onCreate(savedInstanceState);
 
          setContentView(R.layout.sactivity);
 
          /***
 
           * 第二个页面给第一个页面回传数据
 
           * 回传给第一个页面的实际上是一个intent对象
 
           */
 
          bt= (Button) findViewById(R.id.bt3);
 
          bt.setOnClickListener(new View.OnClickListener() {
 
              @Override
 
              public void onClick(View view) {
 
                  Intent intent=new Intent();
 
                  //创建回传对象
 
                  intent.putExtra("intent",content);
 
                  setResult(2,intent);
 
                  //结束当前页面
 
                  finish();
 
              }
 
          });
 
 
      }
 
  }
 
  App的签名和打包:
 
  1、为了保证每个应用开发者的合法。
 
  2、防止别人通过相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改
 
  3、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)
 

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章