Как обновить несколько данных sqlite в представлении переработчика? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть CARDVIEW merchantList.когда я нажимаю кнопку ОБНОВИТЬ в CARDVIEW, он получает все данные для этого конкретного продавца и переходит на другой экран, который также является CARDVIEW.Затем я хочу обновить все данные и нажмите кнопку ОБНОВЛЕНИЕ ОБНОВЛЕНИЯ, чтобы обновить всю строку.Как мне это сделать?Я использую RecyclerVie и адаптер. Это второй экран.Каждое поле редактировать текст.Я хочу отредактировать и нажать кнопку назначения обновления, чтобы все данные обновлялись в sqlite

Это мой пакет классов java com.example.user.paperflyv0;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class UpdateAssigns extends AppCompatActivity {

    RecyclerView recyclerView_ua;
    RecyclerView.LayoutManager layoutManager_ua;
    RecyclerView.Adapter adapter_ua;
    List<UpdateAssign_Model> updateAssignModelList;
    Database database;
    Button button;
    String exu_name,counts;
    Context context;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        database=new Database(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.update_assigns);
        updateAssignModelList = new ArrayList<>();
        TextView mName = findViewById(R.id.merchant_name_update);
        mName.setText(getIntent().getStringExtra("MERCHANTNAME"));
        final String merchantcode = getIntent().getStringExtra("MERCHANTCODE");


        recyclerView_ua = (RecyclerView) findViewById(R.id.recycler_view_ua);
        recyclerView_ua.setHasFixedSize(true);
        layoutManager_ua = new LinearLayoutManager(this);
        recyclerView_ua.setLayoutManager(layoutManager_ua);
        getData(merchantcode);



    }

    private void getData(final String merchantcode)
    {
        try{

            SQLiteDatabase sqLiteDatabase = database.getReadableDatabase();
            Cursor c = database.getassignedexecutive(sqLiteDatabase,merchantcode);
            while (c.moveToNext())
            {
                String name = c.getString(0);
                String count = c.getString(1);
                UpdateAssign_Model updateAssign_model = new UpdateAssign_Model(name,count);
                updateAssignModelList.add(updateAssign_model);
            }
            adapter_ua = new UpdateAssignsAdapter(updateAssignModelList,getApplicationContext());
            recyclerView_ua.setAdapter(adapter_ua);

            }catch (Exception e)
        {
            Toast.makeText(getApplicationContext(), "some error" ,Toast.LENGTH_SHORT).show();
        }
    }

}

Это мой адаптер -

package com.example.user.paperflyv0;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class UpdateAssignsAdapter extends RecyclerView.Adapter<UpdateAssignsAdapter.ViewHolder> {

   private List<UpdateAssign_Model> updateAssignModelList;
   private Context context;
   Button button;





    public UpdateAssignsAdapter(List<UpdateAssign_Model> updateAssignModelList,Context context) {
        this.updateAssignModelList = updateAssignModelList;
        this.context=context;

    }

    class ViewHolder extends RecyclerView.ViewHolder{

        public AutoCompleteTextView itemExe;
        public EditText itemCount;


        public ViewHolder(View itemView) {
            super(itemView);
            itemExe = (AutoCompleteTextView)itemView.findViewById(R.id.auto_complete);
            itemCount = (EditText)itemView.findViewById(R.id.order_count);


        }
    }

    @Override
    public UpdateAssignsAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.update_assigns_layout, viewGroup, false);
        UpdateAssignsAdapter.ViewHolder viewHolder = new UpdateAssignsAdapter.ViewHolder(v);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(UpdateAssignsAdapter.ViewHolder viewHolder, int i) {
        UpdateAssign_Model updateAssign_model = updateAssignModelList.get(i);
        viewHolder.itemExe.setText(updateAssign_model.getEx_name());
        viewHolder.itemCount.setText(updateAssign_model.getCount());
        /*viewHolder.itemCount.setTag(R.id.order_count,i);*/
        }

    @Override
    public int getItemCount() {
        return updateAssignModelList.size();
    }

}

1 Ответ

0 голосов
/ 20 ноября 2018
    viewHolder.itemCount.addTextChangedListener(new TextWatcher() {

       public void afterTextChanged(Editable s) {}

       public void beforeTextChanged(CharSequence s, int start,
         int count, int after) {
       }

       public void onTextChanged(CharSequence s, int start,
         int before, int count) {
// IF YOU USE HANDLER HERE IT WILL BE MORE EFFICIENT
         updateAssign_model.setCount();
       }
      });

Поместите этот код в свой адаптер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...