J'essaie d'envoyer une arrayliste de la notaactivité à la mainfultivité.
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 { EditText editText = findViewById(R.id.textView3); final String str = editText.getText().toString(); String content = findViewById(R.id.textView).toString(); Log.d("Test","inside try block"); outputStream = openFileOutput(str, Context.MODE_PRIVATE); outputStream.write(content.getBytes()); Toast.makeText(getApplicationContext(),"Note saved",Toast.LENGTH_SHORT).show(); Log.d("Test","save done"); final String str1 = editText.getText().toString(); data.add(str1); SendData(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void SendData() { EditText editText = findViewById(R.id.textView3); Log.d("Check","str:"+data); Intent intent = new Intent(NotePad.this,MainActivity.class); intent.putExtra(EXTRA_MESSAGE, data); startActivity(intent); } } My Main Activity 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); Intent intent = getIntent(); notes = intent.getStringArrayListExtra(NotePad.EXTRA_MESSAGE); Log.d("Check","title added: "+notes); final FloatingActionButton button = (FloatingActionButton)findViewById(R.id.add_notebutton); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,NotePad.class); startActivity(intent); } }); recyclerView = (RecyclerView)findViewById(R.id.recycle_list); layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); mAdapter = new MyAdapter(notes); recyclerView.setAdapter(mAdapter); } } my Adapter code public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { ArrayList<String> Notes_list = new ArrayList<String>(); public MyAdapter(ArrayList<String> notes) { Notes_list = notes; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); View view = inflater.inflate(R.layout.list_items,parent,false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { holder.mTextView.setText(Notes_list.get(position)); } @Override public int getItemCount() { return Notes_list.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { TextView mTextView; public MyViewHolder(@NonNull View itemView) { super(itemView); mTextView = (TextView) itemView.findViewById(R.id.view_holder); } } }
3 Réponses :
Essayez ceci: - P>
xxx pré> blockQuote>
La meilleure façon donnée dans le document Android pour envoyer la arraylist ou tout objet personnalisé d'une activité à une autre pour essayer le processus de poids léger pour cela dans Android P>
Lire la vue d'ensemble complète à ce sujet https://developer.android.com/reference / Android / OS / Parcelable P>
J'espère que cela vous aidera à vous p>
Vous essayez de passer des arraylistes et de lire des données de l'intention de GetStringarrayListextra Méthode. Vous devez mettre des données comme ceci: edit fort>: vérifier si l'intention a la clé: p>
blockQuote>
Même erreur: tentative d'invoquer la méthode virtuelle 'int java.util.arraylist.Size ()' sur une référence objet nulle à com.example.quicknote.myadapter.getitemcount (myAdapter.java: 39)
Parce que l'initialement, votre main-d'œuvre commence et aucune intention passée du bloc-notes. Voir la réponse mise à jour.
Stackoverflow.com/Questions/58300796/...
S'il vous plaît Modifier Votre question et formatez votre code, il est difficile de lire. Retirez les backtsks au début. Indendez votre code 4 espaces ou cliquez sur le bouton
{} code>. Fixez le formatage en indençant le code en blocs.