首页 > 解决方案 > 每次单击按钮时,都会在投票计数增加之前显示 1 个值

问题描述

所以我现在有这个选民应用程序,它有一个按钮和一个文本视图。我只是在尝试。

因此,每次我点击按钮计数都会增加,但每当我点击 1 个值时,就会在投票计数增加之前出现。

所以在这个应用程序中,我将有 10 个带有 10 个按钮的文本视图,但现在我只使用一个按钮,但每次我点击投票计数都会增加,但在投票计数增加之前会显示 1 个值,如果我点击太多时间该值将在投票增加之前也会增加

主要活动

public class MainActivity extends AppCompatActivity {
    TextView tv10;
    Button btn10;

    DatabaseReference databaseReference;
    FirebaseDatabase firebaseDatabase;
    DatabaseReference toastreff;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_main );
        btn10 = findViewById ( R.id.btn10 );
        tv10 =findViewById ( R.id.tv10 );
        databaseReference = FirebaseDatabase.getInstance ().getReference ();
        btn10.setOnClickListener ( new View.OnClickListener ( ) {
            @Override
            public void onClick(View v) {
                int count=Integer.parseInt(tv10.getText().toString());
                tv10.setText(""+count++);
                tv10.setText(count+"");
                databaseReference.child ( "toast" ).setValue (ServerValue.increment ( +1 ) );
                toastreff = databaseReference .child ("toast");
                ValueEventListener eventListener = new ValueEventListener ( ) {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                    }
                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {
                    }
                };
                toastreff.addListenerForSingleValueEvent ( eventListener );
            }
        } );
        FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
        DatabaseReference mGetReference = mDatabase.getReference();
        mGetReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()){
                    counts post = dataSnapshot.getValue(counts.class);
                    tv10.setText(post.getToast()+"");
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
            }
        });
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        test10.flushdata(MainActivity.this);
    }
}

计数类文件

package com.example.toasttst;

public class counts {
    int toast;

    public int getToast() {
        return toast;
    }

    public void setToast(int toast) {
        this.toast = toast;
    }

    counts(int count)
    {
        this.toast=toast;
    }
    counts()
    {

    }
}

测试班

package com.example.toasttst;

import android.content.Context;
import android.content.SharedPreferences;

public class test10 {

    private static final String MY_PREFERENCE_NAME = "package com.example.voting";
    private static final String PREF_TOTAL_KEY10 = "pref_total_key10";

    public  static void saveTotalInPreftest10(Context context, int test10total){

        SharedPreferences pref = context.getSharedPreferences ( MY_PREFERENCE_NAME,Context.MODE_PRIVATE );
        SharedPreferences.Editor editor = pref.edit ();
        editor.putInt ( PREF_TOTAL_KEY10,test10total );
        editor.apply ();

    }
    public static int loadtotalfrompreftest10 (Context context){
        SharedPreferences pref = context.getSharedPreferences (  MY_PREFERENCE_NAME,Context.MODE_PRIVATE );
        return pref.getInt ( PREF_TOTAL_KEY10,0 );
    }


    public static void flushdata(MainActivity mainActivity) {
    }
}

这是视频链接,看看我想说什么。 http://imgur.com/a/M78sfnC

标签: databasefirebaseandroid-studiocountsharedpreferences

解决方案


推荐阅读