Параметры функции в PowerShell

@OnClick({R.id.next,R.id.country_us,R.id.country_india})
public void nextClicked(View view)
{ switch(view.getId()) {
    case R.id.next:
        Intent intent = new Intent(this, TutorialScreen.class);
        intent.putExtra("country_selected", ind_sel);
        startActivity(intent);
        break;
    case R.id.country_india:
        ind_sel=true;
        setselectedBlank();
        view.setBackgroundResource(R.drawable.selected_border);
        break;

    case R.id.country_us:
        ind_sel=false;
        setselectedBlank();
        view.setBackgroundResource(R.drawable.selected_border);
        break;
}
}


private void setselectedBlank() {
    country_us.setBackgroundResource(R.drawable.border);
    country_india.setBackgroundResource(R.drawable.border);
}

Вы можете попробовать это просто вызвать метод, чтобы сначала изменить фон для всех по умолчанию, а затем изменить его на выбранный цвет.

Обратите внимание, что здесь используется библиотека инъекций ButterKnife, но даже если вы этого не делаете его использование не проблема Happy Coding

     ImageButton spaces = findViewById(R.id.spaceship);
            spaces.setBackgroundColor(Color.TRANSPARENT);
            spaces.setOnClickListener(view -> {


              setAllnotSelected();
                    spaces.setBackgroundColor(Color.DKGRAY);


            });
     ImageButton mask = findViewById(R.id.mask);
            mask.setBackgroundColor(Color.TRANSPARENT);
            mask.setOnClickListener(view -> {

               setAllnotSelected();
                    mask.setBackgroundColor(Color.DKGRAY);


            });

public void setAllnotSelected();
{
mask.setBackgroundColor(Color.TRANSPARENT);
spaces.setBackgroundColor(Color.TRANSPARENT);
}
14
задан Peter Mortensen 20 January 2016 в 20:37
поделиться

3 ответа

В V1 это действительно просто предпочтение. Использование оператора param традиционно было более формальным, но функционально это то же самое.

Вы, вероятно, увидите гораздо большее использование PARAM в PowerShell V2 из-за возможности добавлять атрибуты к параметрам, аналогично в атрибуты в C #.

param
(
[Parameter( Mandatory=$true,
            Position=0,
            ValueFromPipeline = $true,
            ValueFromPipelineByPropertyName = $true)]
[Alias("name")]
[String]
$path
)

Здесь вы можете указать атрибут параметра и набор аргументов для этого атрибута. Вы также можете указать псевдонимы и ряд других требований для проверки.

Кейт также делает несколько замечательных замечаний. Вы можете использовать оператор param для передачи параметров анонимным блокам сценария ( лямбда-выражения ) или сценарию PS1.

19
ответ дан 1 December 2019 в 12:01
поделиться

param () требуется для указания параметров для файла сценария и для блоков сценария:

PS> $sb = {param($x,$y) $x + $y}
PS> &$sb 1 3
4

Наличие его также для традиционных функций - это просто вопрос согласованности IMO. Это лучше для продвинутых функций, которые, как правило, имеют много багажа, например, метаданных для каждого параметра.

6
ответ дан 1 December 2019 в 12:01
поделиться

Возможно, в качестве меры согласованности? Постоянное указание параметров одним и тем же способом улучшает читаемость.

1
ответ дан 1 December 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: