2012-03-26 105 views
2

我在中爲環形女巫創建了N個按鈕。用戶可以點擊每個按鈕並設置一個數字。在那之後,我想要一個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); 

但沒有奏效。我可以用什麼來獲得我想要的東西?

+0

爲什麼在Button.setText()中不使用文本? – Arslan 2012-03-26 08:55:12

+0

因爲我只是想顯示圖像 – 2012-03-26 09:15:12

+0

然後你應該使用ImageButton – Arslan 2012-03-26 09:21:46

回答

2

KrLx_roller我得到的很多是你想放置文本在一個按鈕上,您不需要採用分隔文本視圖,您可以添加像這樣的文本

Button textOne = new Button(this); 

    textOne.setText("5"); 
    textOne.setBackgroundResource(R.drawable.img); 
    textOne.setGravity(Gravity.CENTER); 
    textOne.setTextColor(Color.RED); 
+0

哇......這麼慚愧......我正在經歷艱辛的路...謝謝你... – 2012-03-26 11:02:12

+0

問題是我有很多N個按鈕,每個按鈕都有它特定的文本。當用戶在EditText中引入另一個值時,我希望更改該值。我該怎麼做?我試過這樣做,但文本僅在最後創建的按鈕上發生變化。 – 2012-03-26 11:23:20

+0

如果你想改變點擊文本的編輯文本,可以這樣做textOne.setText(edittext1.gettext()。tostring());根據編輯文本中的值應用條件 – 2012-03-26 11:32:14

2

如果你想在b按鈕上顯示圖像,你應該爲此使用ImageButton。按鈕和圖像按鈕之間的區別是在按鈕,你可以在按鈕上顯示文本,在ImageButton上,你可以在按鈕上顯示圖像以及按鈕的所有功能

+0

謝謝,但那不是我的問題...我是隻是回答你的問題:爲什麼你不使用Button.setText()中的文本? – 2012-03-26 10:12:38

+0

我現在明白你的意思了,對不起... – 2012-03-26 11:02:39