我想創建這樣的自定義按鈕:Android的自定義按鈕
http://i77.photobucket.com/albums/j74/bertyhell/button.png?t=1279626910
但不起作用 我需要表現出與相對的按鈕原點絕對定位的按鈕上的文本 所有字符串必須更換在運行時
,但下面的按鈕可以是普通按鈕
我怎麼能做到這一點?
如果我通過繼承android.widget.button創建按鈕,我必須自己繪製整個按鈕?
有沒有更簡單的方法?
編輯
好吧,我試圖從相對佈局
這樣的繼承:
package be.smarttelecom.datacheck.views;
import android.content.Context;
import android.util.Log;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class AlertButton extends RelativeLayout {
private TextView roomNumber;
public AlertButton(Context context, String roomNumber) {
super(context);
try{
this.alertId = alertId;
// TODO Auto-generated constructor stub
this.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
TextView room = new TextView(context);
room.setFocusable(false);
room.setText(R.string.room);
room.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
this.roomNumber = new TextView(context);
this.roomNumber.setFocusable(false);
this.roomNumber.setId(R.id.roomNumber);
this.roomNumber.setTextSize(26);
this.roomNumber.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
this.roomNumber.setText(roomNumber);
}catch(Exception ex){
Log.i("test", "problem during construction of alert button: " + ex.getMessage());
}
}
public void setRoomNumber(String number){
roomNumber.setText(number);
}
public void setDescription(String description){
this.description.setText(description);
}
}
當我添加這樣的:
TableRow row2 = new TableRow(this);
AlertButton alert = new AlertButton(this, "1","14","wc","krist");
row2.addView(alert);
container.addView(row2, 0);
我得到一個空頁面並且完全沒有錯誤
任何想法我做錯了什麼?
如何將文本框放在某些位置? 把它們放在一個絕對佈局中,並添加x和y座標? (絕對佈局是depricated,替代?)
確保你在你的onCreate方法中設置你的Activity的setContentView(容器)或類似的東西。另外,請看一下定義XML中的佈局。它會讓你的相對佈局更容易處理 – CodeFusionMobile 2010-07-20 15:04:30
你也沒有向AlertButton視圖添加按鈕。只是稱這是一個按鈕,並不能使它神奇的工作不幸:) – CodeFusionMobile 2010-07-20 16:16:13