Olá estava usando SeekBar para entrada de valores (peso, medidas...), porém percebi em testes práticos que ficava díficil o valor afinado (exemplo para colocar exatamente um valor como 82, sempre ia um pouco mais ou menos) então criei dois botões do lado para poder afinar o valor, como na figura abaixo:
Este é o código layout(xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00AFEF"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#5500ccff">
<LinearLayout android:id="@+id/LinearLayout02"
android:layout_width="fill_parent"
android:layout_height="10dip"
android:padding="7dip"
android:orientation="vertical">
<TextView android:id="@+id/labelCalculos" android:text="Cálculos Nutricionais"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="center"
android:textColor="#FFFFFF"></TextView>
<TextView android:id="@+id/labelPeso" android:text="Peso:"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="left"
android:padding="5dip"
android:textColor="#000000"></TextView>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/buttonmenospeso"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="-"
android:layout_alignParentLeft="true"
/>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/buttonmenospeso"
>
<Button
android:id="@+id/buttonmaispeso"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="+"
android:layout_alignParentRight="true"
/>
<SeekBar android:id="@+id/seekBarPeso"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:paddingLeft="7dip"
android:paddingRight="7dip"
android:layout_toLeftOf="@+id/buttonmaispeso"
></SeekBar>
</RelativeLayout>
</RelativeLayout>
<TextView android:id="@+id/labelAltura" android:text="Altura:"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="left"
android:padding="5dip"
android:textColor="#000000"></TextView>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/buttonmenosaltura"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="-"
android:layout_alignParentLeft="true"
/>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/buttonmenosaltura"
>
<Button
android:id="@+id/buttonmaisaltura"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="+"
android:layout_alignParentRight="true"
/>
<SeekBar android:id="@+id/seekBarAltura"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:paddingLeft="7dip"
android:paddingRight="7dip"
android:layout_toLeftOf="@+id/buttonmaisaltura"
></SeekBar>
</RelativeLayout>
</RelativeLayout>
<TextView android:id="@+id/labelIdade" android:text="Idade:"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="left"
android:padding="5dip"
android:textColor="#000000"></TextView>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/buttonmenosidade"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="-"
android:layout_alignParentLeft="true"
/>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/buttonmenosidade"
>
<Button
android:id="@+id/buttonmaisidade"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="+"
android:layout_alignParentRight="true"
/>
<SeekBar android:id="@+id/seekBarIdade"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:paddingLeft="7dip"
android:paddingRight="7dip"
android:layout_toLeftOf="@+id/buttonmaisidade"
></SeekBar>
</RelativeLayout>
</RelativeLayout>
<TextView android:id="@+id/labelAtividade" android:text="Atividade:"
android:layout_width="fill_parent" android:layout_height="45dip"
android:layout_gravity="top"
android:gravity="left"
android:padding="5dip"
android:textColor="#000000"></TextView>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/buttonmenosatividade"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="-"
android:layout_alignParentLeft="true"
/>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/buttonmenosatividade"
>
<Button
android:id="@+id/buttonmaisatividade"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="+"
android:layout_alignParentRight="true"
/>
<SeekBar android:id="@+id/seekBarAtividade"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:paddingLeft="7dip"
android:paddingRight="7dip"
android:layout_toLeftOf="@+id/buttonmaisatividade"
></SeekBar>
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
Depois é só ir no evento Click do botão na atividade e mandar adicionar no seek que resolve o problema. veja ex:
Button buttonMaisPeso = (Button) findViewById(R.id.buttonmaispeso);
Button buttonMenosPeso = (Button) findViewById(R.id.buttonmenospeso);
buttonMaisPeso.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
seekPeso.setProgress(seekPeso.getProgress()+1);
}
});
buttonMenosPeso.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
seekPeso.setProgress(seekPeso.getProgress()-1);
}
});