Android:onClickListener触发观察者,不断更新UI字段。
创始人
2024-10-06 04:31:14
0

在Android中,可以使用LiveData和ViewModel来实现观察者模式,避免由于点击事件触发而导致UI字段不断更新的问题。以下是一个简单的示例:

首先,创建一个ViewModel类:

public class MyViewModel extends ViewModel {
    private MutableLiveData mLiveData = new MutableLiveData<>();

    public MutableLiveData getLiveData() {
        return mLiveData;
    }

    public void setLiveData(String value) {
        mLiveData.setValue(value);
    }
}

然后,在Activity中创建ViewModel实例并观察LiveData:

public class MainActivity extends AppCompatActivity {
    private MyViewModel mViewModel;

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

        mViewModel = ViewModelProviders.of(this).get(MyViewModel.class);

        final TextView textView = findViewById(R.id.text_view);
        mViewModel.getLiveData().observe(this, new Observer() {
            @Override
            public void onChanged(@Nullable String s) {
                textView.setText(s);
            }
        });

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mViewModel.setLiveData("Hello World!");
            }
        });
    }
}

这样,每次点击按钮时,都会调用setLiveData方法来更新LiveData,LiveData会自动通知观察者(即Activity中的Observer)去更新UI字段。避免了原问题中由于onClick事件触发而不断更新UI字段的情况。

相关内容

热门资讯

第二分钟辅助!wejoker黑... 第二分钟辅助!wejoker黑侠辅助器,xpoker透视辅助,项目教程(有挂工具)1、在wejoke...
第四分钟辅助!wpk系统是否存... 第四分钟辅助!wpk系统是否存在作弊行为,wpk辅助哪里买,方针教程(真实有挂)1、wpk系统是否存...
第七分钟辅助!wepoker可... 第七分钟辅助!wepoker可以免费玩吗,wepoker看底牌,项目教程(有挂秘籍)1、wepoke...
第9分钟辅助!xpoker辅助... 第9分钟辅助!xpoker辅助怎么用,We poker辅助器下载,机巧教程(有挂教程)1、We po...
4分钟辅助!智星德州插件,we... 4分钟辅助!智星德州插件,wepoker轻量版书签,教材教程(有挂存在)亲,关键说明,wepoker...
一分钟辅助!hhpoker有后... 一分钟辅助!hhpoker有后台操控吗,wepoker脚本下载,大纲教程(有挂细节)1、游戏颠覆性的...
两分钟辅助!智星菠萝辅助,德州... 两分钟辅助!智星菠萝辅助,德州圈脚本,窍要教程(有挂方略)1、智星菠萝辅助免费辅助多个强度级别选择2...
8分钟辅助!wepoker数据... 8分钟辅助!wepoker数据分析工具,购买的wpk辅助在哪里下载,练习教程(真的有挂)一、购买的w...
第一分钟辅助!德普之星怎么开辅... 第一分钟辅助!德普之星怎么开辅助,hhpoker怎么防作弊,学习教程(有挂讲解)1、点击下载安装,德...
4分钟辅助!werplan脚本... 4分钟辅助!werplan脚本,hhpoker有后台操控吗,策略教程(有挂教程)1、点击下载安装,h...