Получить и установить позицию динамически - PullRequest
2 голосов
/ 26 марта 2012

Я создаю N кнопок в для цикла с OnClickListener каждой.Пользователь может нажать на каждую кнопку и установить номер.После этого я хочу, чтобы TextView показывал число над кнопкой и в середине.

Example of what I want

Это как раз то, что я хочу.Серый фон - кнопка, а номер - TextView.

Код, который у меня сейчас есть:

        for (int toShow = 0; toShow < nShips; toShow++)
            {
                btn = new Button(this);
                btn.setBackgroundResource(shipDrawable.get(ima));
                btn.setLayoutParams(params);
                row[pos].addView(btn);
                btn.setId(shipId.get(ima));
                btn.setOnClickListener(listeners);
                if (row[pos].getChildCount() == 3) pos++;
                ima++;
            }

Я пытался использовать это внутри цикла for:

float x = btn.getX(), y = btn.getY();
                TextView level = new TextView(this);
                level.setText("5");
                level.setX(x); level.setY(y);

Но не сработало.Что я могу использовать, чтобы получить то, что я хочу?

Ответы [ 2 ]

2 голосов
/ 26 марта 2012

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

    Button textOne = new Button(this);

    textOne.setText("5");
    textOne.setBackgroundResource(R.drawable.img);
    textOne.setGravity(Gravity.CENTER);
    textOne.setTextColor(Color.RED);
2 голосов
/ 26 марта 2012

Если вы хотите показать изображение на кнопке b, вы должны использовать ImageButton для этого. Разница между кнопкой и кнопкой изображения - в кнопке вы можете показывать текст на кнопке, в ImageButton вы можете отображать изображение на кнопке вместе со всеми функциями кнопки

...