为了账号安全,请及时绑定邮箱和手机立即绑定

次要活动无法从texView获取数据的问题

次要活动无法从texView获取数据的问题

DIEA 2022-08-03 15:19:24
我的应用程序中有2个活动,我会从第一个活动中获取数据并将其插入第二个活动。图片:我有2个日期选择器来选择日期范围,我将其保存在texView和texView2上。代码: 主要活动selectDate = (Button) findViewById(R.id.button);date = (TextView) findViewById(R.id.textView);    selectDate2 = (Button) findViewById(R.id.button2);    date2 = (TextView) findViewById(R.id.textView2);    selectDate.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            calendar = Calendar.getInstance();            year = calendar.get(Calendar.YEAR);            month = calendar.get(Calendar.MONTH);            dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);            datePickerDialog = new DatePickerDialog(MainActivity.this,                    new DatePickerDialog.OnDateSetListener() {                        @Override                        public void onDateSet(DatePicker datePicker, int year, int month, int day) {                            date.setText("Entrada: "+day + "/" + (month + 1) + "/" + year);                        }                    }, year, month, dayOfMonth);            datePickerDialog.show();        }    });    selectDate2.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            calendar2 = calendar2.getInstance();            year2 = calendar2.get(Calendar.YEAR);            month2 = calendar2.get(Calendar.MONTH);            dayOfMonth2 = calendar2.get(Calendar.DAY_OF_MONTH);            datePickerDialog2 = new DatePickerDialog(MainActivity.this,                    new DatePickerDialog.OnDateSetListener() {                        @Override                        public void onDateSet(DatePicker datePicker, int year, int month, int day) {                            date2.setText("Salida: "+day + "/" + (month + 1) + "/" + year);                        }                    }, year2, month2, dayOfMonth2);            datePickerDialog2.show();        }    });
查看完整描述

4 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

第一个活动中的某个位置 ():MainActivity.java


Button button = findViewById(R.id.button);


button.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

        Intent intent = new Intent(MainActivity.this, SecondActivity.class);


        // Pass some data

        // Key "DATE_KEY" is static field from SecondActivity

        intent.putExtra(DATE_KEY, "20.03.2019");


        startActivity(intent);

    }

});

在第二个活动中():SecondActivity.java


public class SecondActivity extends AppCompatActivity {


    static final String DATE_KEY = "DATE_KEY";


    @Override

    protected void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_second);


        // Read passed data - String "20.03.2019"

        String date = getIntent().getStringExtra(DATE_KEY);

    }

}


查看完整回答
反对 回复 2022-08-03
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

在调用第二个活动时使用,然后在第二个活动中使用将所选值带回第一个活动:startActivityForResultsetResult


在第一个活动:


void openSecondActivity(){

    Intent intent = Intent(context, SecondActivity.class)

    startActivityForResult(intent,1004)

    }


@Override

 void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == 1004) {

            if (resultCode == Activity.RESULT_OK) {

//do something with results

           }

        super.onActivityResult(requestCode, resultCode, data)

    }

在第二个活动状态下:


void returnResult(String result){

Intent returnIntent = new Intent()

returnIntent.putExtra("result", result)

setResult(Activity.RESULT_OK, returnIntent)

finish()

}


查看完整回答
反对 回复 2022-08-03
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

试试这个


在您的主要活动中


buscarButton.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {


   startActivity(new Intent(MainActivity.this, json.class).putExtra("extra1",date.getText().toString()).putExtra("extra2",date2.getText().toString()));

  }

});

在 json 活动中


if (getIntent().hasExtra("extra1")){

    tvJSON.setText(getIntent().getStringExtra("extra1"));

 }


 if (getIntent().hasExtra("extra2")){

  textView.setText(getIntent().getStringExtra("extra2"));

 }


查看完整回答
反对 回复 2022-08-03
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

根据文档。


从 FirstActivity 发送数据:


public void sendMessage(View view) {

    Intent intent = new Intent(this, SecondActivity.class);

    String message = date.getText().toString();

    String message2 = date2.getText().toString();

    intent.putExtra(EXTRA_MESSAGE, message);

    intent.putExtra(EXTRA_MESSAGE_2, message2);

    startActivity(intent);

}

在第二个活动中接收数据:


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_second);


    // Get the Intent that started this activity and extract the string

    Intent intent = getIntent();

    String message = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE);

    String message2 = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE_2);


    // Capture the layout's TextView and set the string as its text

    TextView textView = findViewById(R.id.textView);

    textView.setText(message);

}


查看完整回答
反对 回复 2022-08-03
  • 4 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信