繁体   English   中英

使用 Intent 接收数据

[英]Receiving data using Intent

我正在尝试使用 Intent 从我的 NoteActivity 发送一些数据到 MainActivity 类的方法(addNote())

 public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager layoutManager;
    ArrayList<String> notes = new ArrayList<String>();





    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.activity_main);
    notes.add("sql");

    //Intent intent = new Intent(NotePad.this,MainActivity.class);
    //intent.putExtra(EXTRA_MESSAGE,str);
    //startActivity(intent); 

}

void addNote()
{

    Intent intent = this.getIntent();
    String title = intent.getStringExtra(NotePad.EXTRA_MESSAGE).toString();
    notes.add(title);
    Log.d("Data","inside saveData");
    Log.d("Data","title: "+title);

   }

 }



 NoteActivity
 public class NotePad extends AppCompatActivity {

public static final String EXTRA_MESSAGE = "key";

ArrayList<String> data = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_note_pad);

    final FloatingActionButton button = (FloatingActionButton)findViewById(R.id.save_button);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

           SaveData();
        }
    });
}

public void SaveData()
{
    FileOutputStream outputStream;

    try {
        ***Some code***

        SendData();
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
}

public void SendData()
{
    EditText editText = findViewById(R.id.textView3);

  final String str = editText.getText().toString();

    Intent intent = new Intent(NotePad.this,MainActivity.class);
    intent.putExtra(EXTRA_MESSAGE,str);
    startActivity(intent);

  }
 }

当我在 onCreate() 方法中接收 (str) as(title) 时,一切正常并且我收到数据,但是当我尝试在 addNote() 方法中接收 Intent 时,我没有收到 Intent 数据

从 onCreate 方法调用您的方法 addNote()。

   public class MainActivity extends AppCompatActivity {

        private RecyclerView recyclerView;
        private RecyclerView.Adapter mAdapter;
        private RecyclerView.LayoutManager layoutManager;
        ArrayList<String> notes = new ArrayList<String>();





        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);
        notes.add("sql");

        //Intent intent = new Intent(NotePad.this,MainActivity.class);
        //intent.putExtra(EXTRA_MESSAGE,str);
        //startActivity(intent); 

          addNote();

    }

    void addNote()
    {

        Intent intent = this.getIntent();
        String title = intent.getStringExtra(NotePad.EXTRA_MESSAGE).toString();
        notes.add(title);
        Log.d("Data","inside saveData");
        Log.d("Data","title: "+title);

       }

     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM