Articles of android button

以编程方式使用XML布局作为模板创buildandroidbutton

我有一个包含TextView的LinearLayout,并且总是会。 TextView下面至less还会有一个button,但在某些情况下可能会有多个button。 我可以成功创build和添加尽可能多的button,因为我需要编程。 我也可以用编程方式成功设置我需要这些button的外观相关参数/选项。 问题是我不知道如何告诉程序创build的button,它应该使用包含外观和布局参数的XML资源文件,而不是以编程方式设置这些参数。 我已经看了类似的命名问题,并花费时间搞乱API本身,没有用。 编辑: 下面是我正在尝试做的一个近似,希望能够使我的解释更加清晰: private TextView textView; private SomeObject someObject; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View scrollView = inflater.inflate(R.layout.fragment_play_game, container, false); textView = (TextView) scrollView.findViewById(R.id.game_data_text); textView.setText(someObject.getTextForTextView()); LinearLayout layout = (LinearLayout) scrollView.findViewById(R.id.game_data_container); for (String optionText : someObject.getTextForButtons()) { layout.addView(createOptionButton(optionText, layout)); } return scrollView; } private View createOptionButton(String […]

为什么在android中设置背景时button变大?

当我使用xml中的android:background属性设置背景时,我遇到了Button视图的问题。 在设置背景之前,button具有其默认大小。 但是,当我将一种颜色作为背景使用时,即使我没有在其上设置不同的width或height ,它也会变得越来越大。 这是我的背景属性设置button之前我的XML布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:background="@color/white" android:layout_gravity="center_horizontal" android:id="@+id/btn_row_option_done" android:text="Done" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:background="@color/white" android:layout_gravity="center_horizontal" android:text="Edit" android:id="@+id/btn_row_option_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:layout_gravity="center_horizontal" android:text="Delete" android:id="@+id/btn_row_option_delete" android:background="@color/red" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:layout_gravity="center_horizontal" android:text="Cancel" android:id="@+id/btn_row_option_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 所以取消button是像截图一样的默认大小。 但是当我在这样的取消button上设置一个颜色 <Button android:background="@color/white" android:layout_gravity="center_horizontal" android:text="Cancel" android:id="@+id/btn_row_option_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 然后button变得比默认的大小,即使我没有使宽度或高度更大。 这是截图 正如你上面看到的取消button变大了。 […]

不包含多行的button文本

我试图创build一个自定义的AlertDialog ,并在布局中有两个button。 但是,当button布局太长,它只显示第一个字。 我已经在xml singleLine = "false" ,但是什么都没有。 此外,我已经在代码中设置了button的行数,在这种情况下,2.但是,当文本不长,button保持大,不包装的内容。 我想要做的是使button包装整个文本,即使它是太长,通过中断button的文本行,如果左边的button由于它包装其整个文本得到更大的高度,button在它的侧面应该是相同的高度。 我知道Android自动执行,不知道为什么它不会发生。 在下面的图片中,button中的文本应该是“这是一个testingbutton”,但是它会剪切文本,并且不会修改其内容的宽度。 下面是它的样子的截图: 这是这个布局的xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_root" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:minWidth="280dip" > <LinearLayout android:id="@+id/dialogTitleLayout" android:orientation="vertical" android:background="@drawable/header" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView style="@style/DialogText.Title" android:id="@+id/dialogTitle" android:paddingBottom="5dp" android:paddingTop="5dp" android:paddingLeft="8dip" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:id="@+id/dialogContentLayout" android:orientation="vertical" android:background="@drawable/center" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView style="@style/DialogText" android:id="@+id/dialogContent" android:layout_width="270dip" android:layout_height="wrap_content" android:paddingLeft="10dp" android:paddingTop="10dp" /> <LinearLayout […]

样式一个button看起来像一个EditText(但仍然像一个button)

我意识到这是一个奇怪的事情要做,但我有一个button,需要看起来像一个EditText,但仍然像一个button。 我的布局XML目前看起来像这样: <Button android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/editTextStyle" /> 这给了它一个EditText的外观,但也通过阻止onClick事件被触发除非该button具有焦点(有效地使其需要两次点击)的行为一点点混乱。 有没有办法保持风格而不改变button的行为? 我想只是制作了一个看起来像EditText的九贴片背景,但是有很多不同的Android版本和皮肤,如果可能的话,我宁愿使用系统风格。

在Android中按下时如何更改颜色button的颜色?

我有一些button,我把它的背景颜色分别设置为红色,绿色和蓝色。 当我按下button,单击事件生成,但没有gui的变化,用户知道button被按下。 Androidbutton的默认背景灰色将变为橙色,并在释放按下的状态后恢复为浅灰色。 如何实现这个彩色button?

旋转拨号限制

所有 我想像下面的图像一样以特定的angular度旋转图像。 我有代码旋转,但它旋转360度,但我只想要特定的程度,并获得拨号上方选定的数字。 下面是我的代码。 我的习惯查看这项工作很好,但性能湖。 import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PointF; import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.view.GestureDetector.OnGestureListener; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; public class MyDialView extends View implements OnGestureListener{ private static Bitmap bimmap; private static Paint paint; private static Rect bounds; private int totalNicks = 100; […]

在Android v21中风格化材质button

我试图保持棒棒糖及以上(21+)以上的设备的材料devise连锁效果,并devise风格化button,使其在周围没有很大的空白/空间。 示例1:具有涟漪效应但有边距/间隙的button: 示例2:没有波纹效果且没有边距/间隙的button: 我想要Exmaple 2的布局,带有示例1中使用的涟漪效应。 我的styles-v21看起来像例1 : <?xml version="1.0" encoding="utf-8"?> <resources> … other styles … <style name="FacebookButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ff3b5998</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="GoogleButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ffdd4b39</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="TwitterButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ff55acee</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="SkipButton" parent="android:Widget.Material.Button"> <item name="android:colorButtonNormal">#ffdfa800</item> <item name="android:layout_margin">0dp</item> <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> […]

在一个活动中选中Androidcheckbox,然后在另一个活动中出现button

这个问题说明了一切。 假设有2个活动,'活动A'和'活动B','活动A'有一个checkbox,当它的选中button应该显示在'活动B',当它的未选中的button应该隐藏'活动B' 以下是主要活动 public class MainActivity extends ActionBarActivity { private BubblesManager bubblesManager; private boolean isCheckedValue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initializeBubblesManager(); final Button add = (Button) findViewById(R.id.add); add.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { addNewBubble(); add.setEnabled(false); } }); CheckBox checkBox = (CheckBox)findViewById(R.id.add_fb); checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean […]

确定/取消button在ICS中的顺序

由于SDK 14,首选的顺序是取消/确定与之前的确定/取消相反。 我不打算进入辩论这是否是一个好主意,这不是我的问题的主题。 问题是,ADK鼓励您使用SDK> = 14的设备的新订单,给您以下Lint 布局使用错误的button顺序为API> = 14:创build一个layout-v14 / layout.xml文件,顺序相反:取消button应该在左边(是“@ string / send | Cancel”,应该是“Cancel | @string/发送“) 好的,我会坚持下去,这对我来说不是问题,我明白我应该听从build议,以避免恼人的用户。 但是,这是事情…在我的三星Galaxy S II,在ICS上运行,系统界面本身似乎不遵循新的顺序。 这里有几个截图的例子: 订单是旧的。 请注意,我使用官方的ICS版本为我的手机(不是自定义ROM)。 而且我的Galaxy Tab 2(同时运行官方ICS)的顺序也是一样的。 在一些对话框中,顺序是正确的(取消/确定)我看到的唯一区别是主题(使用全息主题的对话框有新的顺序;其他的,旧的顺序)。 以下是使用Holo从设置(设置系统date)和从我的应用程序的DatePickerDialog的屏幕截图: 这很令人不安。 它看起来像button的顺序是主题相关的,而不是版本相关的。 还是只是三星不遵循Android的devise模式? 我认为活动(当他们有确定/取消button)也应遵循相同的顺序。 再次,在我的手机上,日历的“创build事件”活动具有错误的顺序(并且该活动不使用“孔”主题): 我将在我的应用程序中使用Holo主题作为来自Honeycomb的设备,所以我将保留SDK> = 14的新订单。 我只是想了解这个问题。 谢谢。

Android从onActivityResult接收值并将其设置为Button

有了这个代码,我可以轻松地插入一些布局。 布局包含一个Button ,我想要启动startActivityForResult 。 现在当我得到结果(文本),我想要设置在Button 。 btnAggiungiCampo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { PopupMenu popup = new PopupMenu(this, btnAggiungiCampo); popup.getMenuInflater().inflate(R.menu.menu_campi, popup.getMenu()); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { View child = null; if (item.getTitle().equals(getString(R.string.Text))) { child = getLayoutInflater().inflate(R.layout.inflate_campo, null); rlCampi.addView(child); Button btnGeneraPSW = (Button) child.findViewById(R.id.imageButton3); btnGeneraPSW.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View […]