У меня есть 3 действия, действие 1 извлекает данные из базы данных, действие 2 - экран spla sh, и действие 3 показывает данные. Я хочу передать данные из действия 1 в действие 3, используя намерение. но это не работает. Если я не использую упражнение 2, оно работает, но я также хочу использовать упражнение 2.
Упражнение 1, извлечение данных из базы данных
matchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDbref = FirebaseDatabase.getInstance().getReference();
mkomref = mDbref.child("Students");
string = matchKriteria.getText().toString();
Query query = mkomp.orderByChild("Komp").equalTo(string);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
if(nameList.size()>0)
nameList.clear();
for (DataSnapshot data : dataSnapshot.getChildren()) {
nameList.add(data.child("Name").getValue(String.class));
}
Intent intent = new Intent(FirstActivity.this, LoadingActivity.class);
intent.putExtra("value",nameList);
startActivity(intent);
}
}
Упражнение 2 spla sh screen
public class LoadingActivity extends AppCompatActivity {
public static int SPLASH_TIME_OUT= 5000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent =new Intent(LoadingActivity.this, ResultActivity.class);
startActivity(intent);
finish();
}
},SPLASH_TIME_OUT);
Задание 3 показывает результат
public class ResultActivity extends AppCompatActivity {
private ArrayList<String> nameList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bedrift_match_resultat);
Intent intent = getIntent();
if (intent != null)
nameList = intent.getStringArrayListExtra("value");
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
if (nameList.size() > 0) {
CustomAdapter adapter = new CustomAdapter(this, nameList);
recyclerView.setAdapter(adapter);
}
}
}