android-layout - 如何找到在android中单击了哪个按钮?
问题描述
我有两个布局(LineatLayOut)。每个布局包含三个按钮。第一个布局的teamA
三个按钮使用变量。第二个布局的三个按钮使用变量teamB
。我很困惑单击了哪个按钮。我试图通过它来获取 id,view.getId()
但它返回一些整数值。我怎样才能找到单击了哪个按钮???
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
tools:context=".MainActivity">
<include
layout="@layout/app_bar"
android:id="@+id/app_bar"
/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_below="@id/app_bar"
>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/teamA"
android:orientation="vertical"
android:layout_below="@id/app_bar"
android:layout_margin="25dp"
android:layout_gravity="center"
>
<TextView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_gravity="center_horizontal"
android:textAlignment="center"
android:text="Team A"
android:textSize="18dp"
android:textColor="@android:color/black"
/>
<TextView
android:layout_width="match_parent"
android:layout_gravity="center_horizontal"
android:textAlignment="center"
android:layout_height="0dp"
android:textSize="25dp"
android:id="@+id/teamAScore"
android:layout_weight="1"
android:text="0"
android:textColor="@android:color/black"/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:text="3"
android:id="@+id/teamA3Button"
android:textColor="@android:color/black"
android:layout_marginBottom="10dp"
android:background="#F57F17"
android:onClick="addScoreOne"
/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:text="5"
android:textColor="@android:color/black"
android:layout_marginBottom="10dp"
android:background="#F57F17"
/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="10dp"
android:textColor="@android:color/black"
android:background="#F57F17"
android:text="FREE THROUGH"
/>
</LinearLayout>
<View
android:layout_height="fill_parent"
android:layout_width="1dp"
android:background="@android:color/black"
/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:id="@+id/teamB"
android:layout_below="@id/app_bar"
android:layout_margin="25dp"
android:layout_gravity="center">
<TextView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_gravity="center_horizontal"
android:textAlignment="center"
android:text="Team B"
android:textSize="18dp"
android:textColor="@android:color/black"
/>
<TextView
android:layout_width="match_parent"
android:layout_gravity="center_horizontal"
android:textAlignment="center"
android:layout_height="0dp"
android:textSize="25dp"
android:id="@+id/teamBScore"
android:layout_weight="1"
android:text="0"
android:textColor="@android:color/black"/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:text="3"
android:textColor="@android:color/black"
android:layout_marginBottom="10dp"
android:background="#F57F17"
/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:text="5"
android:textColor="@android:color/black"
android:layout_marginBottom="10dp"
android:background="#F57F17"
/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:text="Free Through"
android:textColor="@android:color/black"
android:layout_marginBottom="10dp"
android:background="#F57F17"
/>
</LinearLayout>
</LinearLayout>>
<Button
android:text="Reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#F57F17"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:textColor="@android:color/black"
android:layout_margin="10dp"
/>
</RelativeLayout>
addScoreone 的代码:
public void addScoreOne(View view)
{
if (view.getId()==R.id.teamA3Button)
{
teamAScore+=3;
aTextView=findViewById(R.id.teamAScore);
aTextView.setText(teamAScore);
}
else
{
teamBScore+=3;
aTextView=findViewById(R.id.teamBScore);
aTextView.setText(teamBScore);
}
}
解决方案
您必须为每个按钮 xml 添加id
和onClick
属性。然后,您可以使用方法R.id.teamB5Button
中的按钮 ID 检测代码中的每个按钮addScoreOne
。
推荐阅读
- ignite - Ignite 服务器节点内存不足
- laravel - Laravel mix 无法解析来自 webpack.config.js 的别名文件
- php - Laravel 在多对多关系中播种错误的 id 值
- java - Java 客户端库 (AdWords) 的关键字迭代器
- angular - 为什么轮播代码不起作用?
- python - 按主机名路由数据库
- ionic-framework - 如何修复此错误 [错误:无法找到 '@ionic/angular/css/display.css']
- javascript - react脚本和jest版本24.7.1冲突
- header - 接受 wiki api 请求的标题中的配置文件是什么
- git - git clone 后在 Intellij 中标记为非项目文件的所有文件