Не удается заставить secondSpinner обновлять сам sh - PullRequest
0 голосов
/ 12 июля 2020

Может ли кто-нибудь взглянуть на мой код, он действительно простой, созданный только для практики моих навыков. Но счетчик языка работает, а счетчик пола глючит. Он будет работать, как только я изменю язык, затем изменю пол, а затем go обратно на пол, который я изначально хотел. Код показан. Спасибо. Пробовали поставить onItemSelected () для spinnerGen, это не решает проблему. Исследуя это с прошлой ночи, не могу найти никакого решения

public class MainActivity extends AppCompatActivity {

private Button btnGo, btnAbout;
private Spinner spinner, spinnerGen;
private EditText addName;

private ArrayList<String> options;
private ArrayList<String> optionsGen;
private String allOption = "";
private String genOption = "";
private String genOptionSec = "";

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


    options = new ArrayList<>();
    options.add("English");
    options.add("Bengali");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_dropdown_item, options);
    spinner.setAdapter(adapter);
    adapter.setNotifyOnChange(true);
    adapter.notifyDataSetChanged();

    optionsGen = new ArrayList<>();
    optionsGen.add("Male");
    optionsGen.add("Female");

    ArrayAdapter<String> adapterGen = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_dropdown_item, optionsGen);
    spinnerGen.setAdapter(adapterGen);
    adapterGen.setNotifyOnChange(true);
    adapterGen.notifyDataSetChanged();


    spinnerMethod();


}


private void initPage() {
    btnGo = findViewById(R.id.btnGo);
    btnAbout = findViewById(R.id.btnAbout);

    spinner = findViewById(R.id.spinner);
    spinnerGen = findViewById(R.id.spinnerGen);
    addName = findViewById(R.id.addName);

}

public void spinnerMethod() {
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            allOption = spinner.getSelectedItem().toString();

            switch (allOption) {
                case "English" :
                    newMethodEnglish();
                    break;
                case "Bengali" :
                    newMethodBengali();
                    break;
                default:
                    break;

            }
        }

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

        }
    });


}

public void newMethodEnglish() {
   genOption = spinnerGen.getSelectedItem().toString();
   switch (genOption) {
       case "Male":
           onClickEngMale(); //In these method Im just navigating to another activity
           break;
       case "Female":
           OnClickEngFemale();
           break;
       default:
           break;
   }
}

public void OnClickEngFemale() {
    btnGo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String femaleData = addName.getText().toString();
            Intent intent = new Intent(MainActivity.this, EngFemale.class);
            intent.putExtra("DataFemale", femaleData);
            startActivity(intent);
        }
    });
}

public void onClickEngMale() {
    btnGo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String maleData = addName.getText().toString();
            Intent intent = new Intent(MainActivity.this, EngMale.class);
            intent.putExtra("Data", maleData);
            startActivity(intent);
        }
    });
}

public void newMethodBengali() {
    genOptionSec = spinnerGen.getSelectedItem().toString();

    switch (genOptionSec){
        case "Male":
            onClickBanMale();
            break;
        case "Female":
            onClickBanFemale();
        default:
            break;
    }
}

public void onClickBanMale() {
    btnGo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String maleData = addName.getText().toString();
            Intent intent = new Intent(MainActivity.this, BanMale.class);
            intent.putExtra("DataBan", maleData);
            startActivity(intent);
        }
    });
}

public void onClickBanFemale() {
    btnGo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String femaleData = addName.getText().toString();
            Intent intent = new Intent(MainActivity.this, BanFemale.class);
            intent.putExtra("BanFemale", femaleData);
            startActivity(intent);

        }
    });
}

}

...