Meine App funktioniert perfekt beim Laden aller Ereignisse und Aktivitäten. Wenn ich jedoch versuche, eine Activity mit RecyclerView zu laden, um einige gespeicherte Strings anzuzeigen. Es stürzt ab und finish
. Ich weiß nicht, ob die Syntax falsch ist oder vielleicht die Logik des Codes selbst.App stürzt auf RecyclerView
Ich rufe die Aktivität von einem Zuhörer
Objekt parceable auf die neue Tätigkeit:
final public FrasesProvisional frases = new FrasesProvisional();
Methode Start der Aktivität:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.config:
lanzarConfiguracion(null);
break;
case R.id.about:
lanzarAbout(null);
break;
case R.id.mismotivaciones:
abrirMotivaciones(null);
break;
}
return true;
}
private void abrirMotivaciones(View view) {
Intent i = new Intent(this, MotivacionesUser.class);
startActivity(i);
}
Aktivität Inhalt:
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
/**
* Created by Pablo on 14/01/2017.
*/
public class MotivacionesUser extends AppCompatActivity {
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutMmanager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.motivacionesrecycler);
FrasesProvisional frases = getIntent().getParcelableExtra("frases");
mRecyclerView = (RecyclerView) findViewById(R.id.motivaciones_recycler);
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
mRecyclerView.setHasFixedSize(true);
//Init LayoutManager
mLayoutMmanager = new LinearLayoutManager(this); //Podemos elegir entre LinearM, GridM o ScrappableM en relación al estilo que queramos
mRecyclerView.setLayoutManager(mLayoutMmanager); //Set the Layout to the RrecyclerView
mAdapter = new RecyclerAdaptador(frases.getArrayList()); //Especificamos el adaptador a usar y lo agenciamos al Recycler
mRecyclerView.setAdapter(mAdapter);
}
}
RecyclerView Code:
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by Pablo on 14/01/2017.
*/
public class RecyclerAdaptador extends RecyclerView.Adapter <RecyclerAdaptador.ViewHolder> {
private ArrayList <String> frases;
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public TextView mTextView;
public ViewHolder(View v) {
super(v); //Inicializa el textview
mTextView = (TextView) v.findViewById(R.id.text_recycler);
}
}
public RecyclerAdaptador(ArrayList <String> frases) {
this.frases = frases;
}
@Override
public RecyclerAdaptador.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//Create a new view
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.frase_recycler, parent, false);
ViewHolder vh = new ViewHolder(view);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
//Get element of the data set at the position x and replace the content of the rextView with it
holder.mTextView.setText(frases.get(position));
}
@Override
public int getItemCount() {
return frases.size();
}
}
Vielen Dank im Voraus!
Bitte geben Sie die Unfallprotokolle an. –