activity更新另一个activityUI方法(一)

    xiaoxiao2021-12-14  16

    关于activity更新另一个activityUI的方法,我查了很多资料,总结起来,常用的有两种方法:1、handler更新。2、广播更新UI。 关于广播更新的方法: 1、第一个activity中:

    package com.example.upanotheracyui; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.RelativeLayout; import android.widget.TextView; import butterknife.Bind; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity { @Bind(R.id.tv_text) TextView tvText; @Bind(R.id.btn) Button btn; @Bind(R.id.activity_main) RelativeLayout activityMain; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent i = new Intent(MainActivity.this, SecActivity.class); startActivity(i); } }); IntentFilter filter = new IntentFilter(SecActivity.action); registerReceiver(broadcastReceiver, filter); } BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { tvText.setText(intent.getExtras().getString("data")); } }; protected void onDestroy() { unregisterReceiver(broadcastReceiver); } }

    该activity对应的布局activity_main.xml:

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:background="@color/colorPrimaryDark" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.upanotheracyui.MainActivity"> <TextView android:id="@+id/tv_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ffffff" android:textSize="16sp" android:text="hello world!" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:textColor="#ffffff" android:layout_height="wrap_content" android:background="@color/colorAccent" android:padding="10dp" android:layout_marginTop="50dp" android:textSize="18sp" android:text="跳转activity" /> </RelativeLayout>

    2、另一个activity代码:

    package com.example.upanotheracyui; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import butterknife.Bind; import butterknife.ButterKnife; /** * Created by Administrator on 2016/12/2 0002. */ public class SecActivity extends Activity { @Bind(R.id.btn_two) Button btnTwo; public static final String action = "com.example.upanotheracyui.action"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sec); ButterKnife.bind(this); btnTwo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //更新第一个activity的ui Intent intent = new Intent(action); intent.putExtra("data", "跳转界面——" + Math.random()); sendBroadcast(intent); // finish(); } }); } }

    该activity对应的布局文件 activity_sec.xml:

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorPrimaryDark" android:orientation="vertical"> <TextView android:layout_marginTop="10dp" android:id="@+id/two_txt" android:textColor="#ffffff" android:textSize="16sp" android:padding="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello_world" /> <Button android:id="@+id/btn_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:textSize="18sp" android:layout_gravity="center_horizontal" android:padding="10dp" android:background="#FFFFFF" android:text="更新1tv" /> </LinearLayout>

    测试后,正常运行。

    文件下载地址: http://download.csdn.net/detail/liyihan333/9700185

    转载请注明原文地址: https://ju.6miu.com/read-965731.html

    最新回复(0)