将数据返回到回收站视图

时间:2019-08-03 05:45:22

标签: android android-recyclerview

我有一个回收站视图,从此回收站视图onclick一项,它转到了另一个活动,并传递了回收站视图的标题和注释。在该活动中,我可以编辑标题,但是如何将版本发送回回收者视图?

我应该重写onStop并在其中放置一种方法来传递数据吗?但是如何传递这些数据?我是故意的还是有更好的方法来传递具有良好性能的数据?然后我应该打电话给notifyitemchanged吗?

我非常感谢您可以提供的任何帮助或建议

编辑:一些代码:

我如何传递数据

fun AnotherActivityOpen(coisa: ClasseP) {
        val bundle = Bundle()
        bundle.putString("nome", coisa.nome)
        bundle.putString("notas", coisa.notas)

        val intent = Intent(this, AnotherActivity::class.java)
        intent.putExtras(bundle)
        this.startActivity(intent)
    }

编辑2:数据在适配器的列表中,但我也将其保存在sqlite数据库中。

编辑3:更多代码,该应用现在非常大,请输入正确的代码对吧?

class AnotherActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_another)

        titulo.setText(intent.getStringExtra("nome"))
        notas.setText(intent.getStringExtra("notas"))

1 个答案:

答案 0 :(得分:0)

创建OnItemChangeListner界面:

public interface OnItemChangeListner{
   public void onItemChanged(int position, String newTitle, String newNote);
}

假设第一个活动包含一个recyclerView和一个存储项目的数组。

  

FirstActivity.java

class FirstActivity extends Activity implements OnItemChangeListner{
     RecyclerView rcvList;
     ArrayList<Item> items;
     YourRecyclerView adapter;
     //...some methods 
     @Override
     public void onItemChanged(int position, String newTitle, String newNote){
        items.get(position).setTitle(newTitle);
        items.get(position).setNote(newNote);
        adapter.notifyDataSetChanged();
     }
}
  

SecondActivity.java

class public SecondActivity extends Activity{
        OnItemChangeListner listener;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
             CommonModelClass commonModelClass = CommonModelClass.getSingletonObject();

             Activity firstActivity=  commonModelClass.getbaseActivity();;
             listener = (OnItemChangeListener)firstActivity;
             submitButton.setOnClickListener(new OnClickListener(){
                 @Override
                 public void onClick(View view){
                     listener.onItemChanged(position,newTitle,newNote);
                 }
             });
        }
}

什么是CommonModelClass ???请查看以下答案: https://stackoverflow.com/a/21773074/8531215