Android-ViewModel 小Demo

viewModel 有點像是類的實例化

Viewtest類

package com.example.viewtest01;

import androidx.lifecycle.ViewModel;

public class Viewtest extends ViewModel {
    public int number = 0;
}

activity

package com.example.viewtest01;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;


import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    Viewtest myViewmodel;
    TextView textview;
    Button button1;
    Button button2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myViewmodel = ViewModelProviders.of(this).get(Viewtest.class);//實例化
        button1 = findViewById(R.id.button);
        button2 = findViewById(R.id.button2);
        textview = findViewById(R.id.text01);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myViewmodel.number++;
                textview.setText(String.valueOf(myViewmodel.number));
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myViewmodel.number+=2;
                textview.setText(String.valueOf(myViewmodel.number));
            }
        });

    }
}

在這裏插入圖片描述

測試效果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章