我正在构建一个需要将信息从新活动传递到主活动的应用。
我从一开始就尝试不使用2个活动,相反,我只是使用editText,然后将信息传递给textView。
public class MainActivity extends AppCompatActivity implements
DatePickerDialog.OnDateSetListener,TimePickerDialog.OnTimeSetListener{
private static int PLACE = 0;
private ArrayList<TextView> notes = new ArrayList<TextView>();
private FloatingActionButton makeNoteFloatingActionButton,saveFloatingActionButton;
private Button setTimeButton;
private int day,month,year,hour,minute;
private int dayFinal,monthFinal,yearFinal,hourFinal,minuteFinal;
private String savedNote;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makeNoteFloatingActionButton = (FloatingActionButton)findViewById(R.id.makeNoteFloatingActionButton);
saveFloatingActionButton = (FloatingActionButton)findViewById(R.id.saveFloatingActionButton);
setTimeButton = (Button)findViewById(R.id.setTimeButton);
makeNoteFloatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,pop.class);
intent.putExtra("note",);
startActivity(intent);
}
});
另一个类
public class MainActivity extends AppCompatActivity implements
DatePickerDialog.OnDateSetListener,TimePickerDialog.OnTimeSetListener{
private static int PLACE = 0;
private ArrayList<TextView> notes = new ArrayList<TextView>();
private FloatingActionButton makeNoteFloatingActionButton,saveFloatingActionButton;
private Button setTimeButton;
private int day,month,year,hour,minute;
private int dayFinal,monthFinal,yearFinal,hourFinal,minuteFinal;
private String savedNote;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makeNoteFloatingActionButton = (FloatingActionButton)findViewById(R.id.makeNoteFloatingActionButton);
saveFloatingActionButton = (FloatingActionButton)findViewById(R.id.saveFloatingActionButton);
setTimeButton = (Button)findViewById(R.id.setTimeButton);
makeNoteFloatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,pop.class);
intent.putExtra("note",);
startActivity(intent);
}
});
我的目标是编写所需的文本,然后以文本视图的形式将其传递给主要活动。
答案 0 :(得分:0)
主要活动:
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,pop.class);
intent.putExtra("note", note);
startActivity(intent);
}
另一堂课:
public class AnotherClass{
Intent intent = getIntent();
String note = intent.getStringExtra("note");
}
答案 1 :(得分:0)
最好的解决方案是使用startActivityforResult()。这样您就总是完成第二个活动,返回ediText值。
在第一个活动中将startActivity()替换为startActivityForResult()。
Intent intent = new Intent(MainActivity.this,pop.class); startActivityForResult(intent, 101); // 101 is the unique request code
在“第二个活动”中,从EdiText获取值后,执行此操作
Intent intent = new Intent(); intent.putExtra(“ note”,“ editTextValue”);
//设置结果并完成此活动
setResult(Activity.RESULT_OK, intent);
finish();
从活动1的onActivityResult()获取“ note”的键值
@Override 受保护的void onActivityResult(int requestCode,int resultCode,Intent data){
switch (requestCode) {
case 101: // unique request code to obtain the intent data
if (resultCode == RESULT_OK) {
String note = data.getStringExtra(“note”);
}
break;
}
}
还要确保使用正确的命名约定,使用Pop作为类名而不是pop