Задать видимость на основе TableLayout, выбранную на Spinner - PullRequest
0 голосов
/ 14 июня 2019

Я хочу, чтобы Spinner установил видимость таблицы, у меня есть 2 Array String "cuboid and цилиндр".если я выберу Cuboid, таблица cubeT будет видимой, а таблица cyclinderT - невидимой.и если я выберу Цилиндр, то таблица цилиндра будет видимой, а куб - невидимой.

Пример кода приветствуется.Спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 14 июня 2019
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        String text = ((Spinner)spinner).getSelectedItem().toString();
        if (Intrinsics.areEqual(text, "Cuboid")) {
            //Your code here to set your "table" as cubeT if it's image in imageview
            //if it's a "tableLayout" you may create 2 different layouts included and..:
            setContentView(R.layout.your_cubeT_layout);         
        } else if (Intrinsics.areEqual(text, "Cylinder")) {
            setContentView(R.layout.your_cyclinderT_layout);
          }
    } //when it comes to use different layouts on the same activity, generally suggestions made over fragments to make your code more dynamic but i don't know how to do that...

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {
        // your code here
    }

});

Я не использую Java с годами, так что я могу плохо кодировать ... Так что никаких гарантий!

0 голосов
/ 14 июня 2019

Вы можете установить OnItemSelectedListener для Spinner, а затем использовать аргумент int position, чтобы решить, какое действие предпринять.

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                switch (position) {
                    case Cuboid: 
                       cubeT.setVisibility(View.VISIBLE);
                       cylinderT.setVisibility(View.GONE);
                    break;

                    ....
                }
            }

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

        });
...