在一个 Activity 中改变另一个 Activity 的 UI
2017-04-29 00:40
351 查看
在一个 Activity 中更改另一个 Activity 的 UI 可以让两个 Activity 共享一个 Handler 达到其效果,这里介绍的是另一种方法。
使用场景是点击主界面的按钮进入第二个界面,在第二个页面进行相关操作返回后,主界面的 UI 或数据会发生改变。
主要用到的方法是 startActivityForResult
![](https://github.com/Nenguou/Images/blob/master/SM-G9350_20170428202824_1.gif?raw=true)
2. 为 Button 设置点击事件
2.设置另一个 Activity 的 Java 文件
3. 设置回调方法
欢迎关注我的博客、简书、CSDN、GitHub
使用场景是点击主界面的按钮进入第二个界面,在第二个页面进行相关操作返回后,主界面的 UI 或数据会发生改变。
主要用到的方法是 startActivityForResult
![](https://github.com/Nenguou/Images/blob/master/SM-G9350_20170428202824_1.gif?raw=true)
第一个页面的设置
1. 在主布局文件中创建一个 Button(用于进入第二个 Activity),一个 TextView (用于在启动第二个 Activity 后显示改变 Text)<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击进入另一个 Activity " android:id="@+id/botton_aty"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView" />
2. 为 Button 设置点击事件
button = (Button) findViewById(R.id.botton_aty); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()){ case R.id.botton_aty: Intent intent = new Intent(MainActivity.this,AnotherAty.class); requesdCode = 0; //需提前定义一个:‘private int requesdCode;’ startActivityForResult(intent,requesdCode); //这里用 startActivityForResult 的主要原因就是它可以回传数据。 } } });
第二个页面的设置
1. 设置另一个 Activity 的布局文件<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="改变第一个 Activity 中 TextView 的值" android:id="@+id/button"/>
2.设置另一个 Activity 的 Java 文件
public class AnotherAty extends AppCompatActivity { private int requesdCode = 0; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_another_aty); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); setResult(requesdCode,intent); finish(); } }); } }
3. 设置回调方法
//从第二个页面回来的时候会执行 onActivityResult 这个方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case 0: textView.setText("发生变化"); textView.setTextSize(50); } }
欢迎关注我的博客、简书、CSDN、GitHub
相关文章推荐
- android 一个activity定时更新另一个activity的UI
- 三种方式实现在一个Activity中控制另一个Activity的UI的更新
- 在一个activity中更改另一个activity的UI
- 如何在一个Activity更新另一个Activity的UI(发送广播的方法)
- Android在一个activity改变另一个activity的组件
- 如何用JS实现一个DropDownList的值改变时触发另一个DropDownList的显示与隐藏
- 一个Activity跳转到另一个ListActivity中总结
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- startActivity方法启动一个新的activity时怎么让新的activity在另一个新的 task中
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- Protocol 模拟UI中一个按钮点击改变lable中的值
- Android 一个Activity调用另一个Activity中的公有方法
- 在一个Activity中启另一个Activity的方法
- android中如何添加一个监听按钮,点击之后从一个activity跳转到另一个activity
- 一个apk调用另一个apk的某个activity
- Android开发中在一个Activity中关闭另一个Activity
- android 在一个Activity中结束另一个Activity的方法(可以完全退出程序)
- Android Sample Code之API Demos (Activity四): 一个activity接收另一个activity结果
- 在一个Activity bull中启动另一个Activity secondbull的方法 3 启动package *com.example.android.notepad 中的类bull*
- Android在一个应用中启动另一个应用的Activity时失败的解决办法