2011-03-08 147 views
1

嗨,我想创建一个自定义按钮。我已经实现了我的custom_but.xml以下各种教程使用选择器/项目声明在我的XML这工作正常。Android自定义按钮

我想要做的是在这个按钮上有一个标签和一个值。标签保持其价值和价值根据用户输入而变化...

这可能吗?

Example of button

+0

你是什么意思的标签和价值?按钮上的文字?如果你想将一个固定值与一个视图相关联,你可以看一下'View#setTag()' – 2011-03-08 15:24:10

+0

你可以显示一些代码吗?我不知道该怎么帮助你。 – 2011-03-08 15:24:42

+0

我正在尝试将标签对齐到左侧和右侧的值。没有硬编码布局大小,我可能需要的是扩展Button类。 – Dimitri 2011-03-09 07:58:36

回答

0

像有两种方法去解决这个在我看来。

android Button继承自TextView,所以它有一个setText()方法,您可以使用它在运行时更改其文本。所以,一个非常简单的方法来实现您的目标将每次值更改时连接您的“标签”字符串和您的“值”字符串,并调用按钮上的setText。

从活动中:

Resources res = this.getResources(); 
String label = res.getString(R.string.label_string); 
String buttonText = label + value; 
button.setText(buttonText); 

可以很明显的将任何分离的你标签和值的字符串之间的喜欢。

另一方面,它看起来像你可能试图将标签对齐到左边的值和右边的值。没有硬编码的布局大小,我不认为你可以只用一个textView(记住一个Button是一个textView)。编写一个扩展Button的新类,添加另一个textView,并重写它的onDraw(Canvas)方法可能会有所帮助。

+0

谢谢,你描述的第二个场景就是我需要的。我将研究如何扩展Button类。 – Dimitri 2011-03-09 07:56:20

+0

您好Cephron,我试图做类似于上面的情况,因为我只是将Button扩展到一个类,并在构造函数中添加了以下代码,LayoutInflater layoutInflater =(LayoutInflater)上下文 .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = layoutInflater.inflate(R.layout.custom_button, (ViewGroup)findViewById(R.id.custom_button_view));但我得到普通的按钮,我错过了什么或错的东西。 – Vignesh 2011-09-06 11:03:05