Seleção de Spinner carregar dados de segundo Spinner

Tenho um app com 2 Spinners. O primeiro Spinner, se referencia a estados (sp ou rj) o segundo se refere a times, se eu escolher no primeiro spinner, SP, ele vai aparecer São Paulo e Santos no Spinner2. Caso eu escolha RJ, ira aparecer no Spinner2 Flamengo e Fluminense. Como eu faço para escolha do Spinner1 interferir no carregamento do Spinner2?

Iniciei o código aqui:

public class MainActivity extends AppCompatActivity
{ public Spinner spnEstado,spnTime;
public TextView txtV;
public String op1;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

    spnEstado=findViewById(R.id.estado);
    spnTime=findViewById(R.id.time);
    txtV=findViewById(R.id.txtOp);

    final String estados[]={"","SP","RJ"};
    String timesSP[]={"São Paulo","Santos"};
    String timesRJ[]={"Flamengo","Fluminense"};

    ArrayAdapter<String> Est = new ArrayAdapter<>(this,R.layout.support_simple_spinner_dropdown_item,estados);
    spnEstado.setAdapter(Est);

    spnEstado.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            op1=estados[position];
            txtV.setText(op1);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

}

}