【问题标题】:android how to use intent to give back data to mainActivityandroid如何使用intent将数据返回给mainActivity
【发布时间】:2020-10-25 20:19:57
【问题描述】:

我有类似的 DialogSheet 活动形式,我想将数据发送到 MainActivity 如何尝试了很多但从来没有工作

保存按钮从用户那里获取所有信息然后保存,但我不知道如何将其发送到 main

Save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            // take all the information form the user then save it to the card
            // i used getActivity instead of MyclassName.this bcs it did not work
                Intent intent = new Intent(getActivity(),MainActivity.class);
                String Sname =Name.getText().toString();
                String Sweight = Weight.getText().toString();
                String Sdate = SelectDate.getText().toString();

               // intent send to MainActivity 
                intent.putExtra("ExtraName",Sname);
                intent.putExtra("ExtraWeight",Sweight);
                intent.putExtra("ExtraDate",Sdate);

                // it did not work i dont know why 
                MainActivity.logArrayList.add(new Log(Sname,Sweight,Sdate));
               startActivity(intent);
            }
        });

        return v;
    }

我如何在 MainActivity 中使用意图,但我尝试在 DialogSheet 活动中插入(),但它唯一的问题请帮助我


   protected void onCreate(Bundle savedInstanceState) { 
           Intent intent = getIntent();
           String  Bname = intent.getStringExtra("ExtraName");
           String  Bweight = intent.getStringExtra("ExtraWeight");
           String  Bdate = intent.getStringExtra("ExtraDate");

  }
    public void insert(){
         logArrayList.add(new Log(Bname,Bweight,Bdate));
         LogAdapter.notifyDataSetChanged();
     }

【问题讨论】:

  • Intent 意图 = new Intent(v.getContext(),MainActivity.class);
  • @koding 谢谢,但我需要将此添加到我的列表中,请参阅 insert()

标签: android android-intent android-activity


【解决方案1】:

如果您从MainActivity 拨打DialogSheet,您可以这样做:

向您的MainActivity 添加一个方法,如下所示:

void addCard(String name, String weight, String date){
  // here add item to list
}

并将DialogSheet 处的点击侦听器代码更改为:

Save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            // take all the information form the user then save it to the card
            ((MainActivity) getActivity()).addCard(
                                            Name.getText().toString(),
                                            Weight.getText().toString(),
                                            SelectDate.getText().toString()
                                            );
            }
        });
    }

【讨论】:

    【解决方案2】:

    使用 Bundle 恢复数据。

      protected void onCreate(Bundle savedInstanceState) { 
               Bundle b = getIntent().getExtras();
               String  Bname = b.getStringExtra("ExtraName");
               String  Bweight = b.getStringExtra("ExtraWeight");
               String  Bdate = b.getStringExtra("ExtraDate");
    
        }
    

    【讨论】:

    • 我认为这不是问题,因为我想通过 insert() 将 varublase 添加到我的列表中,但是当我点击保存时如何使它工作的问题
    猜你喜欢
    • 2023-03-26
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2021-10-03
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    相关资源
    最近更新 更多