有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在安卓 studio中的活动之间传递数据

我正在开发一个应用程序,需要将信息从我的新活动传递到我的主要活动

一开始我试着不使用两个活动,而是使用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) 个答案

  1. # 1 楼答案

    最好的解决方案是使用startActivityforResult()。这样,您就可以始终完成返回EditText值的第二个活动

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

       Intent intent = new Intent(MainActivity.this,pop.class);
      startActivityForResult(intent, 101); // 101 is the unique request code
    2. 在第二个活动中,从EdiText获取值后,执行以下操作

      意图=新意图(); 意图putExtra(“注释”、“编辑文本值”)

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

      setResult(Activity.RESULT_OK, intent);
      finish();
      
    3. 从活动1中的onActivityResult()中获取“note”的键值

      @Override ActivityResult上受保护的void(int请求代码、int结果代码、意图数据){

      switch (requestCode) { case 101: // unique request code to obtain the intent data if (resultCode == RESULT_OK) { String note = data.getStringExtra(“note”); } break; } }

    还要确保使用正确的命名约定,使用Pop作为类名,而不是Pop

  2. # 2 楼答案

    主要活动:

        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");
         }