Untitled

 avatar
unknown
plain_text
2 years ago
2.8 kB
2
Indexable
package edu.mob.lab04;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.EditText;
import android.widget.Toast;

import java.util.HashMap;
import java.util.Locale;

public class MainActivity extends AppCompatActivity implements CRecyclerViewAdapter.IItemClickListener{

    protected CDBMaterial dbMaterial;
    protected RecyclerView recyclerView;
    protected CRecyclerViewAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
        dbMaterial = new CDBMaterial(this);
        dbMaterial.open();
        findViewById(R.id.buttonAdd).setOnClickListener(v -> {
            dbMaterial.addMaterial(
                    ((EditText)findViewById(R.id.editType)).getText().toString(),
                    ((EditText)findViewById(R.id.editStandard)).getText().toString());
            adapter.swapCursor(dbMaterial.getMaterials());
            runLayoutAnimation();
        });
        adapter = new CRecyclerViewAdapter(this,dbMaterial.getMaterials());
        recyclerView = findViewById(R.id.viewList);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(adapter);
        adapter.setClickListener(this);
        int resId = R.anim.layout_animation_fall_down;
        LayoutAnimationController animation =
                AnimationUtils.loadLayoutAnimation(this, resId);
        recyclerView.setLayoutAnimation(animation);
    }

    private void runLayoutAnimation(){
        final LayoutAnimationController controller =
                AnimationUtils.loadLayoutAnimation(this, R.anim.layout_animation_fall_down);
        recyclerView.setLayoutAnimation(controller);
        recyclerView.getAdapter().notifyDataSetChanged();
        recyclerView.scheduleLayoutAnimation();
    }

    @Override
    public void onItemClick(View view, int position) {
        HashMap<String, String> item = adapter.getItem(position);
        Toast.makeText(this, String.format(Locale.US, "IDX = %d, dane: %s, %s, %s", position,
                item.get(CDBHelper.TYPE_ID), item.get(CDBHelper.TYPE_TYPENAME),
                item.get(CDBHelper.TYPE_STANDARD)),Toast.LENGTH_SHORT).show();
    }
}