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字段的情况。

相关内容

热门资讯

透视要领!hhpoker是真的... 透视要领!hhpoker是真的假的(AApoker透视)果然真的有辅助神器(哔哩哔哩)1、实时hhp...
透视法子!德州局HHpoker... 透视法子!德州局HHpoker透视脚本(WPK链接)本来是真的有辅助方法(哔哩哔哩)1、进入到德州局...
透视学习!pokemmo脚本(... 透视学习!pokemmo脚本(HHpoker正品)本来存在有辅助插件(哔哩哔哩)pokemmo脚本是...
透视资料!如何下载德普之星辅助... 透视资料!如何下载德普之星辅助软件(AApoker透视软件)竟然是真的有辅助教程(哔哩哔哩)1、玩家...
透视妙招!wepoker可以开... 透视妙招!wepoker可以开透视吗(WePoKer规律)真是是有辅助插件(哔哩哔哩)1、透视妙招!...
透视练习!wepoker黑侠辅... 透视练习!wepoker黑侠辅助器(WePoKer开辅助)好像真的是有辅助教程(哔哩哔哩)1、透视练...
透视法门!pokemmo修改器... 透视法门!pokemmo修改器手机版(德普之星官网)原来真的是有辅助神器(哔哩哔哩)1、首先打开po...
透视指南!hhpoker透视脚... 透视指南!hhpoker透视脚本视频(HHpoker必备)总是有辅助软件(哔哩哔哩)在进入hhpok...
透视操作!wepoker辅助器... 透视操作!wepoker辅助器软件下载(AApoker辅助)确实真的有辅助神器(哔哩哔哩)1、wep...
透视大纲!有哪些免费的wpk作... 透视大纲!有哪些免费的wpk作必弊码(HHpoker必备)确实是有辅助神器(哔哩哔哩)1、用户打开应...