Android extention libary of button group
Add app Gradle dependency:
dependencies {
implementation 'com.github.ViduraPrasangana:ButtonGroup:1.0.2'
}
Add project Gradle dependency:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
<dependency>
<groupId>com.github.ViduraPrasangana</groupId>
<artifactId>ButtonGroup</artifactId>
<version>Tag</version>
</dependency>
Create Button Group in activity xml file XML Code
<com.hunteralex.buttonsgroup.ButtonGroup
android:id="@+id/buttonGroup1"
android:layout_width="300dp"
android:layout_height="wrap_content"
app:buttonHeight="50dp"/>
Make arraylist of strings for names of each button and add it to button group buttonGroup.addButtons(arrayList)
JAVA code
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("First");
arrayList.add("Middle");
arrayList.add("Last");
ButtonGroup buttonGroup = findViewById(R.id.buttonGroup1);
buttonGroup.addButtons(arrayList);
JAVA code
buttonGroup.setOnItemClickListener(new ButtonGroup.OnItemClickListener() {
@Override
public void OnItemClickListener(int position) {
switch (position){
case 0:
Toast.makeText(getBaseContext(),"First",Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(getBaseContext(),"Middle",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(getBaseContext(),"Last",Toast.LENGTH_SHORT).show();
break;
}
}
});
It is possible to customize the buttons applying the following options:
Option Name | Format | Description |
---|---|---|
android:textSize | dimension |
Text size of each button |
app:backgroundColor | color |
Background color of the normal button |
app:fontColor | color |
Text color of the button |
app:borderColor | color |
Border color of the button |
app:borderColorFocus | color |
Border color of the focused button |
app:backgroundColorFocus | color |
Background color of the focused buttons |
app:buttonHeight | dimension |
Text color of the inactive buttons |
app:cornerRadius | dimension |
Corner Radius in dp |
app:borderVisibility | boolean |
Set border visibility |
All of these attribetes can be assigned dynamically through java code.
Vidura Prasangana, Undergraduate,Department of ComputerSience and Engineering ,University of Moratuwa