Как установить текст для каждого интервала поиска в Android? - PullRequest
1 голос
/ 17 ноября 2011

Я делаю поисковик в Android с его максимальным значением как 12.

    <SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/mapview"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="32dp"
    android:max="12"
    android:progress="0"
    android:layout_marginTop="60dp"
    android:secondaryProgress="0" />

Мне нужно установить текст как 1,2,3,4 .... 12 в моем дизайне xml под строкой поиска, соответствующий точному интервалу? Как этого добиться?

Ответы [ 3 ]

2 голосов
/ 17 ноября 2011

Сначала вы получите ссылку на ваш SeekBar:

SeekBar bar = (SeekBar) findViewById( R.id.seekBar1 );
bar.setOnSeekBarChangedListener( new OnSeek() );

Затем создайте закрытый класс, который реализует OnSeekBarChangedListener :

  private class OnSeek implements OnSeekBarChangeListener {
    public void onProgressChanged( SeekBar seekBar, int progress,
                                   boolean fromUser ) {
      //Here is where you handle the change in the seekbar e.g.
      myTextView.setText( "You are at stage: " + progress );    
    }

    public void onStartTrackingTouch( SeekBar seekBar ) {
      //No need to do stuff here
    }

    public void onStopTrackingTouch( SeekBar seekBar ) {
      //No need to do stuff here
    }
  }
1 голос
/ 17 ноября 2011

Пожалуйста, используйте ниже код

<seek bar object>.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
            {

                @Override
                public void onProgressChanged(SeekBar arg0, int arg1,
                        boolean arg2) {
                    // TODO Auto-generated method stub
                    int mCurrentValue = arg1 + mMinValue;
                    text.setText(Integer.toString(mCurrentValue));
                }

                @Override
                public void onStartTrackingTouch(SeekBar arg0) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onStopTrackingTouch(SeekBar arg0) {
                    // TODO Auto-generated method stub

                }

            });
0 голосов
/ 03 декабря 2012
package com.example.test_project;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.SeekBar;

public class CustomSeekBar extends SeekBar{
Paint paint;
int heigth;
int width;
int interval;
int Startpoint;
int StartingPoint;
int EndingPoint;
int Differnce;
private boolean StartUp;
    public CustomSeekBar(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        paint=new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(30.0f);
        StartUp=false;

    }
    public void IntializeValue(int startingPoint,int endingPoint,int difference)
    {
        this.StartingPoint=startingPoint;
        this.EndingPoint=endingPoint;
this.Differnce=difference;
setProgress(2);
setMax(12);
    }

    @Override
        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
            heigth=h;
            width=w;
            int parts=(EndingPoint/Differnce);
            interval=width/parts;
            System.out.println("111 width is "+width);
            System.out.println("111 heigth is "+heigth);
            System.out.println("111 interval is "+interval);
            super.onSizeChanged(w, h, oldw, oldh);
        }

    @Override
    protected synchronized void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        int diff=10;
            System.out.println("ondraw 2");
            int tempPoint=StartingPoint;
            canvas.drawLine(Startpoint,15,width,15,paint);
            canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        canvas.drawText(tempPoint+"", Startpoint,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        diff=10;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;
        tempPoint+=Differnce;
        canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint);
        canvas.drawLine(Startpoint,5,Startpoint,25,paint);
        Startpoint+=interval;

        super.onDraw(canvas);
        Startpoint=0;
        System.out.println("ondraw");
    }

}
...