Как добавить панель поиска в пользовательский диалог без XML - PullRequest
0 голосов
/ 16 января 2012

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

public class StrokePicker extends Dialog {

StrokePicker strokepicker;

public StrokePicker(Context context) {
    super(context);
}

public class StrokePickerView extends View {

    Paint Stroke;
    SeekBar seekbar;

    private static final int mCENTER= 32;

    public StrokePickerView(Context context) {
        super(context);
        Stroke = new Paint(Paint.ANTI_ALIAS_FLAG);
        Stroke.setStyle(Paint.Style.FILL);
        Stroke.setColor(Color.BLACK);

    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(Color.WHITE);
        canvas.drawCircle(canvas.getWidth()/2-mCENTER, canvas.getHeight()/2-mCENTER*3, mCENTER, Stroke);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        setMeasuredDimension(125 * 2, 100 * 2);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    LinearLayout layout = new LinearLayout(getContext());
    SeekBar seekbar;
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setGravity(Gravity.CENTER);
    layout.setPadding(10, 10, 10, 10);
    layout.addView(new StrokePickerView(getContext()),
            new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT));

    setContentView(layout);
    setTitle("Grosor");
}

}

Я не нашелИнформация о том, как добавить панель поиска без использования XML, любая помощь будет оценена.Пока и спасибо заранее.

1 Ответ

1 голос
/ 16 января 2012

Попробуйте создать SeekBarPreference

или

builder.setView(View v); here is how you can use it.

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.yourLayoutId, (ViewGroup) findViewById(R.id.yourLayoutRoot));
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setView(layout);
AlertDialog alertDialog = builder.create();
alertDialog.show();
SeekBar sb = (SeekBar)layout.findViewById(R.id.yourSeekBar);
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
        //Do something here with new value
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...