Этот прослушиватель для отправки данных из активности в просмотрщик не работает - PullRequest
0 голосов
/ 31 января 2019

Я хочу отправить информацию обратно в программу просмотра, чтобы обновить представление, но слушатель не работает.У меня есть это сообщение в компиляторе "ошибка: не удается найти слушателя символьной переменной"

DoneByDefault - класс, который отправляет данные обратно в просмотрщик

public class DoneByDefault extends AppCompatActivity {

…… ..

public interface onItemChange{
    void notifyAdapter(int position,BatchObject payload);
}

private onItemChange listener;

public DoneByDefault(Context context){
    this.listener=(SelectBatchStep)context;
}

public DoneByDefault(){

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_done_by_default);
    xpayload=new BatchObject();
    …….
    btn_save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            ……
            xpayload.setmStep_Answer(xanswer);
            xpayload.setmStep_Comments(xcomments);
            xpayload.setmStep_DoneBy(user_doneby);
            xpayload.setmStep_Done_Date(dateString);
            xpayload.setmStep_Id(stepid);
            xpayload.setmbatch_No(batchnumber);
            xpayload.setmStep_No(stepnumber);
            xpayload.setmStep_Question_Type(stepquestiontype);
            xpayload.setmStep_Question(stepquestion);
            Error here: this.listener.notifyAdapter(xposition,xpayload);

            finish();
        }
    });

}

SelectBatchStep - класс с утилизатором

public class SelectBatchStep extends AppCompatActivity implements DoneByDefault.onItemChange{

……

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_select_batch_step);
    ….
    recyclerView=(RecyclerView) findViewById(R.id.recycler_view);
    mLayoutManager=new LinearLayoutManager(getApplicationContext());
    mAdapter=new SelectBatchStepAdapter(this, batchObjectList, rBatch_No, ruser, document_no);
    recyclerView.setAdapter(mAdapter);
    ……

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    ……

@Override
public void notifyAdapter(int position,BatchObject payload){

    batchObjectList.set(position,payload);
    mAdapter.notifyItemChanged(position);
}

Ответы [ 2 ]

0 голосов
/ 31 января 2019

попробуйте это:

public void onClick(View view) {

       BatchObject batchObject =new BatchObject();
        batchObject .setmStep_Answer(xanswer);
        batchObject .setmStep_Comments(xcomments);
        batchObject .setmStep_DoneBy(user_doneby);
       ....
        this.listener.notifyAdapter(xposition,batchObject );

        finish();
    }
0 голосов
/ 31 января 2019

1. Вы должны использовать Intent, когда операция отправляет данные в операцию 2. Вы будете использовать onActivityResult или Broadcast Receiver !!!

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