Как сделать выделенную одну кнопку в списке кнопок?

Я использовал этот файл FileSaver.js . В моем случае с файлами csv я сделал это (в coffescript):

  $.ajax
    url: "url-to-server"
    data: "data-to-send"
    success: (csvData)->
      blob = new Blob([csvData], { type: 'text/csv' })
      saveAs(blob, "filename.csv")

Я думаю, что для наиболее сложного случая данные должны обрабатываться должным образом. Под капотом FileSaver.js реализует тот же подход ответа Джонатан Аменд .

-1
задан Zoe 22 February 2019 в 12:21
поделиться

3 ответа

Вы можете проверить одно ImageButton для условия, если оно проверено. Основываясь на этом, вы можете сделать все остальные setChecked() ложными. Я использовал то же самое для установки значений RadioButtons.

if (Friends != null) {
                        Friends.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                            @Override
                            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                                if (isChecked) {
                                    friend_source = "Friend";
                                    Newspaper.setChecked(false);
                                    Facebook.setChecked(false);
                                    Zomato.setChecked(false);
                                    RadioSource.setChecked(false);
                                }


                            }
                        });
                    }
0
ответ дан Satyam 22 February 2019 в 12:21
поделиться

Создайте файл ресурсов, который имеет разные цвета для разных состояний кнопки.

btn_bg_states.xml :

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_focused="true">
    <shape>
        <solid android:color="your_color" />
    </shape>
</item>

<item android:state_pressed="true">
    <shape>
        <solid android:color="your_other_color" />
    </shape>
</item>


<item>
    <shape>
        <solid android:color="your_default_color" />

    </shape>
</item>
</selector>

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

android:background="@drawable/btn_bg_states"
0
ответ дан Nikos Hidalgo 22 February 2019 в 12:21
поделиться
@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);
}
0
ответ дан Akash Pal 22 February 2019 в 12:21
поделиться
Другие вопросы по тегам:

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