在android studio中的活动之间传递数据

时间:2019-07-16 08:00:38

标签: java

我正在构建一个需要将信息从新活动传递到主活动的应用。

我从一开始就尝试不使用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);
        }
    });

我的目标是编写所需的文本,然后以文本视图的形式将其传递给主要活动。

2 个答案:

答案 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值。

  1. 在第一个活动中将startActivity()替换为startActivityForResult()。

     Intent intent = new Intent(MainActivity.this,pop.class);
    startActivityForResult(intent, 101); // 101 is the unique request code

  2. 在“第二个活动”中,从EdiText获取值后,执行此操作

    Intent intent = new Intent();     intent.putExtra(“ note”,“ editTextValue”);

    //设置结果并完成此活动

    setResult(Activity.RESULT_OK, intent);
    finish();
    
  3. 从活动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