我想第一次在Android中显示地图.现在I want to display 3 buttons on the map, and when I clicked on a particular button, that button's click event should be raised.地图应全屏显示,按钮位于下方.
我不知道我是怎么做到的?当我们想要使用MapView显示地图时,我们必须扩展MapActivity类.所以请提出一些想法,示例或参考站点.
编辑:
我使用以下布局显示地图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mapView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="true"
android:clickable="true"
android:apiKey="my generated api key"
/>
<Button
android:text="Button"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 比如说我在我的XML文件中定义了几个按钮,并最初将它们设置为禁用.
<Button
android:text="Off"
android:id="@+id/Button0"
android:enabled="false">
</Button>
<Button android:text="Off"
android:id="@+id/Button1"
android:enabled="false">
</Button>
<Button android:text="Off"
android:id="@+id/Button2"
android:enabled="false">
</Button>
<Button android:text="Off"
android:id="@+id/Button3"
android:enabled="false">
</Button>
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中我想要启用所有按钮,所以理想情况下这应该在循环中完成,但我无法弄清楚如何在循环中访问按钮.例如,我不想提出几个陈述:
Button b = (Button)findViewById(R.id.Button0);
/* Do some action on button0 */
b = (Button)findViewById(R.id.Button1);
/* Do some action on button1 */
/* And continue with explicit statements for each button*/
Run Code Online (Sandbox Code Playgroud)
那么如何在循环中实现上述目标呢?
我有一个案例,当我按下一个按钮它与Web服务进行通信我遇到的问题是,如果你双击该按钮它会调用Web服务两次导致双重提交.有任何想法如何防止按钮接受第二次点击?我查看了这篇文章,但似乎解决方案不起作用.
我想完全以编程方式更改Android小部件按钮(特别是角落)的样式.意思是,我想在没有任何xml文件的情况下这样做.根据我的研究,我得出结论,这是不可能的.我的结论是正确的还是有人知道怎么做?
我想在RUNTIME更改我的按钮背景
我知道如何为按钮添加自定义背景,但是
如何将其更改为borderlessButtonStyle?在xml很简单,我用过:
style="?android:attr/borderlessButtonStyle")
Run Code Online (Sandbox Code Playgroud)如何切换回默认背景?以下不是我想要的(显然它不是Jelly Bean中使用的默认值)
changeableButton.setBackgroundResource(android.R.drawable.btn_default);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
好吧,我是java和android编程的新手,但我遇到过最令人沮丧的错误,我似乎无法找到解决方案.这是错误所在的位置.
final Button button = (Button) findViewById(R.id.activity_button);
Run Code Online (Sandbox Code Playgroud)
这是按钮本身的XML.
<Button
android:id="@+id/button_main"
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/button_text" />
Run Code Online (Sandbox Code Playgroud)
我没有看到问题,我导入的import com.awesometech.uselessbutton.R;没有帮助.有什么建议?我正在使用Eclipse.
我试图以编程方式更改形状的颜色,但它不起作用.
这是形状
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#9F2200"/>
<stroke android:width="2dp" android:color="#fff" />
</shape>
Run Code Online (Sandbox Code Playgroud)
这是我如何使用它作为按钮的背景
<Button
android:id="@+id/ibtn_EA_ColorPick_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/round_button"
/>
Run Code Online (Sandbox Code Playgroud)
这就是我如何改变它的颜色
GradientDrawable bgShape = (GradientDrawable)btn_ColorPick.getBackground();
bgShape.setColor(Color.RED);
Run Code Online (Sandbox Code Playgroud)
但是,当我改变背景颜色时,它会从屏幕上删除按钮.
由于某些原因,当创建LinearLayout带有按钮的时,最左边的按钮没有任何文本。
在布局预览中,它看起来不错。但是在实际设备上,它看起来像这样:

这是布局代码:
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/minusOneButton"
android:layout_gravity="center_horizontal"
tools:text="-"
android:textSize="25sp"
android:textAlignment="center"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/minus5Button"
android:layout_gravity="center_horizontal"
tools:text="-5"
android:textSize="25sp"
android:textAlignment="center"
android:layout_below="@+id/minusOneButton"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:text="+"
android:id="@+id/plusOneButton"
android:layout_gravity="center_horizontal"
android:textSize="25sp"
android:textAlignment="center"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/counterText" />
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:text="+5"
android:id="@+id/plus5Button"
android:layout_gravity="center_horizontal"
android:textSize="23sp"
android:textAlignment="center"
android:layout_below="@+id/plusOneButton"
android:layout_alignLeft="@+id/plusOneButton"
android:layout_alignStart="@+id/plusOneButton" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="0"
android:id="@+id/counterText"
android:layout_gravity="center_horizontal"
android:textSize="60dp"
android:layout_marginBottom="13dp"
android:layout_alignBottom="@+id/plus5Button"
android:layout_toRightOf="@+id/minusOneButton"
android:layout_toEndOf="@+id/minusOneButton" />
Run Code Online (Sandbox Code Playgroud)
即使在此布局中只有一个按钮,它也不会显示文本。
这是用于使该类可用于其他布局的类:
public class HigherCounter extends LinearLayout implements View.OnClickListener{
public HigherCounter(Context context, AttributeSet attrs) { …Run Code Online (Sandbox Code Playgroud) 如果将Theme.MaterialComponents.Light设置为主要主题,那么如果在xml布局中使用它们,这两个按钮之间会有什么区别吗?
<Button />
<com.google.android.material.button.MaterialButton />
Run Code Online (Sandbox Code Playgroud)
如我所见,它们的行为均与MaterialButtons相同。如果要获取旧的普通按钮的行为,则必须使用:
<androidx.appcompat.widget.AppCompatButton />
Run Code Online (Sandbox Code Playgroud)
提前致谢!
android android-appcompat android-button material-design material-components-android
android ×10
android-button ×10
java ×2
casting ×1
findviewbyid ×1
for-loop ×1