嗨我在我的应用程序中有2个活动,我将从第一个活动中获取数据并将其插入第二个活动中。
图片:我有2个日期选择器来选择日期范围,我将它保存在textView和文本View 2上。
代码:主要活动
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();
}
});
活性2:
package com.example.mand.consumirapirest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class json extends AppCompatActivity {
TextView tvJSON;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_json);
setTextView();
}
public void setTextView() {
tvJSON = (TextView) findViewById(R.id.tvJSON);
textView = (TextView) findViewById(R.id.textView);
String s = textView.getText().toString();
tvJSON.setText(s);
//String text = textView.getText().toString();
//return text;
}
/*public String getText()
{
}*/
}
不知道谢谢..!
从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);
}
在SecondActivity中接收数据:
@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);
}
在第一个活动的某个地方(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);
}
}
在调用第二个活动时使用startActivityForResult
,然后在第二个活动中使用setResult
将选定的值恢复到第一个活动:
在FirstActivity中:
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)
}
在SecondActivity中:
void returnResult(String result){
Intent returnIntent = new Intent()
returnIntent.putExtra("result", result)
setResult(Activity.RESULT_OK, returnIntent)
finish()
}
试试这个
在您的MainActivity中
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"));
}