ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#intent 记录以intent作为主要工具使用时,记录 [TOC] ##界面间的相互跳转 **步骤** ###1. 创建两个activity文件,分别包含两个xml资源文件。 ###2. 在AndroidManifest.xml ,注册两个actvity, 代码效果如下: ~~~ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sowsceo.www.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <!-- 主Activity界面 --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Main2Activity"></activity> <!-- 第二个Activity界面 --> </application> </manifest> ~~~ ###3. 在两个xml资源文件中,编写组件。 ####1. MainActivity的activity_main资源文件的代码如下: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context="com.sowsceo.www.myapplication.MainActivity"> <Button android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="进入第二个界面" /> </LinearLayout> ~~~ ####2. Main2Activity的activity_main资源文件,其代码如下: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context="com.sowsceo.www.myapplication.MainActivity"> <Button android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="进入第一个界面" /> </LinearLayout> ~~~ ####3. MainActivity的业务逻辑,其代码如下: ~~~ import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ Intent intent = new Intent(this,Main2Activity.class); startActivity(intent); } } ~~~ ####4. Main2Activity的业务逻辑,其代码如下: ~~~ import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ Intent intent = new Intent(this,MainActivity.class); startActivity(intent); } } ~~~ ###4. 效果 ![](https://box.kancloud.cn/38a249fa907110eb17f5694f31ac96b0_1080x1920.jpg) ![](https://box.kancloud.cn/0ef973bb251f3912973015a9ffb5f908_1080x1920.jpg) ##界面间的数据传递 为了减少重复性的工作行为,本功能说明,将基于“界面间的相互跳转”进行修改。 ###1. 创建两个activity文件,分别包含两个xml资源文件。 ###2. 在AndroidManifest.xml ,注册两个actvity, 代码效果如下: ###3. 在两个xml资源文件中,编写组件。 ####1. MainActivity的activity_main资源文件的代码如下: ~~~ <EditText android:id="@+id/edi" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="进入第二个界面" /> ~~~ `` ####2. Main2Activity的activity_main资源文件` 接收信息,组件不在这里实现,在业务逻辑文件中实现 ####3. MainActivity的业务逻辑,其代码如下: ~~~ public class MainActivity extends AppCompatActivity { private static final String EXTRA_ERSSAGE = "com.sowsceo.www.myapplication"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ Intent intent = new Intent(this,Main2Activity.class); EditText editText = (EditText) findViewById(R.id.edi); String message = editText.getText().toString().trim(); intent.putExtra(EXTRA_ERSSAGE,message); startActivity(intent); } } ~~~ ####4. Main2Activity的业务逻辑,其代码如下: ~~~ private static final Object EXTRA_MESSAGE = "com.sowsceo.www.myapplication"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); // Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra((String) Main2Activity.EXTRA_MESSAGE); //Create the text view TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); setContentView(textView); } ~~~ ###4. 效果 ![](image/Screenshot_20161117-195627.jpg) ![](https://box.kancloud.cn/01c3b234cebc12951e6c72e77152ce00_1080x1920.jpg) * * * * * ## activity 与 Framgent 通信 Framgent向Activity发出通信 不管是Framgent外的Activity,还是包含Fragment的Activity Activity向Framgent发出通信 只能是包含Fragment的Activity 不能是Framgent外的Activity,如果要通信,条件是:“Framgent外的Activity”向“包含Fragment的Activity”通信并提供指示,然后“包含Fragment的Activity”根据指示,向相应的Fragment通信 ![](https://box.kancloud.cn/12f8053b383299002cf0ba18dc04a910_950x662.png) [使用教程](http://www.cnblogs.com/blll/p/4635107.html)