- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Activity 中有一个像记分牌一样的表格,所以我使用 findViewWithTag
来找到我想要更快编辑的 View 并使我的代码更清晰,但它返回 null。
错误是:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at *.onCreate(score.java:52)
java file :
public class score extends Activity {
public void onCreate(Bundle savedInstanceState) {
int i;
super.onCreate(savedInstanceState);
setContentView(R.layout.score);
Button team1 = findViewById(R.id.team1);
team1.setOnClickListener(new ToggleButtonClickListener());
team1.setText(new StringBuilder(String.valueOf(SharedManager.names[0])).append("\n").append(SharedManager.names[1]).toString());
Button team2 = findViewById(R.id.team2);
team2.setOnClickListener(new ToggleButtonClickListener());
team2.setText(new StringBuilder(String.valueOf(SharedManager.names[2])).append("\n").append(SharedManager.names[3]).toString());
for (i = 17; i <= 23; i++) {
Button button = team1.getRootView().findViewWithTag(i);
button.setOnClickListener(new ToggleButtonClickListener()); //error here
button.setText(SharedManager.en2ar(i - 10));
}
}
}
xml file:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
<LinearLayout
android:id="@+id/add_score_palceholder"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/add_score_palceholder"
android:background="@color/background"
android:orientation="vertical"
android:paddingTop="10dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbarAlwaysDrawVerticalTrack="false">
<TableLayout
android:id="@+id/add_score_table"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:stretchColumns="*">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right|center_vertical|center_horizontal|center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/bidding_team"
android:textColor="@android:color/black"
android:textSize="20sp"
android:textStyle="bold" />
<TableRow
android:paddingLeft="10dp"
android:paddingRight="10dp">
<Button
android:id="@+id/team2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/button_left_style"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:tag="11"
android:textSize="20sp" />
<Button
android:id="@+id/team1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/button_right_style"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:tag="10"
android:textSize="20sp" />
</TableRow>
<View android:layout_height="10dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right|center_vertical|center_horizontal|center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/bid"
android:textColor="@android:color/black"
android:textSize="20sp" />
<TableRow
android:paddingLeft="10dp"
android:paddingRight="10dp">
<Button
android:id="@+id/bid_9"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_top_left_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="19"
android:text="9"
android:textSize="25sp" />
<Button
android:id="@+id/bid_8"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="18"
android:text="8"
android:textSize="25sp" />
<Button
android:id="@+id/bid_7"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_top_right_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="17"
android:text="7"
android:textSize="25sp" />
</TableRow>
<TableRow
android:paddingLeft="10dp"
android:paddingRight="10dp">
<Button
android:id="@+id/bid_13"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_bottom_left_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="23"
android:text="13"
android:textSize="25sp" />
<Button
android:id="@+id/bid_12"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="22"
android:text="12"
android:textSize="25sp" />
<Button
android:id="@+id/bid_11"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="21"
android:text="11"
android:textSize="25sp" />
<Button
android:id="@+id/bid_10"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_bottom_right_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="20"
android:text="10"
android:textSize="25sp" />
</TableRow>
<View android:layout_height="10dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right|center_vertical|center_horizontal|center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/win"
android:textColor="@android:color/black"
android:textSize="20sp" />
<TableRow
android:paddingLeft="10dp"
android:paddingRight="10dp">
<Button
android:id="@+id/win_5"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_top_left_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="35"
android:text="5"
android:textSize="25sp" />
<Button
android:id="@+id/win_4"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="34"
android:text="4"
android:textSize="25sp" />
<Button
android:id="@+id/win_3"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="33"
android:text="3"
android:textSize="25sp" />
<Button
android:id="@+id/win_2"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="32"
android:text="2"
android:textSize="25sp" />
<Button
android:id="@+id/win_1"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="31"
android:text="1"
android:textSize="25sp" />
<Button
android:id="@+id/win_0"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_top_right_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="30"
android:text="0"
android:textSize="25sp" />
</TableRow>
<TableRow
android:paddingLeft="10dp"
android:paddingRight="10dp">
<Button
android:id="@+id/win_9"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="39"
android:text="9"
android:textSize="25sp" />
<Button
android:id="@+id/win_8"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="38"
android:text="8"
android:textSize="25sp" />
<Button
android:id="@+id/win_7"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="37"
android:text="7"
android:textSize="25sp" />
<Button
android:id="@+id/win_6"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="36"
android:text="6"
android:textSize="25sp" />
</TableRow>
<TableRow
android:paddingLeft="10dp"
android:paddingRight="10dp">
<Button
android:id="@+id/win_13"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_bottom_left_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="43"
android:text="13"
android:textSize="25sp" />
<Button
android:id="@+id/win_12"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="42"
android:text="12"
android:textSize="25sp" />
<Button
android:id="@+id/win_11"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_middle_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="41"
android:text="11"
android:textSize="25sp" />
<Button
android:id="@+id/win_10"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/button_bottom_right_style"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:tag="40"
android:text="10"
android:textSize="25sp" />
</TableRow>
</TableLayout>
</ScrollView>
</LinearLayout>
</RelativeLayout>
最佳答案
您在布局中声明的标签是字符串,并且在您的 java 代码中您正在搜索具有 int 值的标签。
改变这个:
Button button = team1.getRootView().findViewWithTag(i);
对此:
Button button = team1.getRootView().findViewWithTag(String.valueOf(i));
关于android - findViewWithTag 在 TableLayout 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608753/
我有2000条记录,我想在tablelayout中显示产品列表。第一次加载需要显示50条记录,其余记录需要分页显示。 在 onCreate() 中我完成了表格布局:它的动态表格内容 tl = (
已编辑:我自己找到了解决方案。谢谢! 我想为 Android 应用程序创建以下屏幕: 现在我有这个: 使用此代码:
我正在尝试做我的第一个复杂的 GUI,但现在我无法解决这个问题。 前两行的第一列只需要包含标签,而前两行的第二列必须占据剩余空间。 在此快照中,我注意到的问题是第一列比我想要的要大。 这是实现该布局的
当仅添加第一行时,一切顺利,但在添加第二行后,它失败了。 pupils=db.getAllPupilsPupil(); events=db.getAllEvents(); TableLayout ta
我想制作一款类似 Jeopardy 的游戏,为了实现这一目标,我决定使用 TableLayout 布局。这就是我的代码现在的样子: import javax.swing.JButton; import
我在 ListView 中使用 TableLayout。我提供的数据本质上是表格形式的,TableLayout 似乎是确保列按需要排列的好方法。这种方法在大多数情况下都很有效 - 见下文。 所需 Vi
我想发布一张图片来描述这个问题,但显然我在 stackoverflow 方面的声誉还不够,所以我将尝试描述我想要完成的事情。 我有一个包含 5 列的 TableLayout。它们由公司名称、职位编号、
我想实现一个带分页的 TableLayout,在第 1 页显示 10 条记录,然后在第 2 页显示下 10 条记录,依此类推...我正在使用 Table Layout但我没有得到所需的结果。使用本教程
我正在构建一个吉他应用程序。屏幕右侧是指板,左侧是几个按钮。 我用一个充满按钮的表格布局构建了吉他琴颈。没什么特别的。这工作得很好。不过我也想支持平板电脑。 吉他琴颈的宽度必须与每个设备保持一致,并且
在我现有的代码中,我有三个按钮,它们在同一行上水平对齐,但是,我希望这些按钮出现在不同的行上。 现有布局... [-----] [-----] [------] 追求布局... [------] [-
我的表格布局有点问题。 我有两列 专栏 1 |第 2 列 column1 内容是静态的,表示一个属性,例如“位置”,“产品”。第二列使用适配器填充。 我的问题是 TextView 打断了 column
我的目标是从数据库中获取数据,然后在我的应用程序中将其显示为表格。 这是我的代码: public void updateLastExpenses(){ Cursor c = Expense.
我一直在尝试基于 Google Play 商店中名为 Timetable 的应用程序创建一个应用程序。在过去的几天里,我一直在努力解决一个看似简单的问题。基本上,我使用 TableLayout 创建了
我正在努力寻找一种在 TableLayout 中添加和删除可点击按钮的好方法。 所以我目前有一个包含整数和对象的 HashMap。它也随着用户的需要而更新。当用户按下“添加项目”按钮时,我希望它完成向
请参阅下面的屏幕截图,了解平板电脑和手机上的不同结果。 Activity .xml
我有一个包含三列的 TableLayout,代表一个带有 的表单 必填符号 |标签 |输入框。 我希望输入字段填充屏幕右侧标签的剩余宽度。到目前为止,我找到的唯一解决方案是这个
我有一个类,其内容设置为具有几个按钮和一个 TableLayout 的布局。 制作 TableLayout 的真正工作是在一个单独的静态助手类中,它有一个返回所需表格的方法。 但是,表格没有显示。我错
我想在线程中创建一个动态表格布局(因为我有一个巨大的表格并且加载时间很长)。它似乎一直工作到第四行,但在出现错误之后。 我找不到问题出在哪里。在此 java 代码中,已简化表布局以解决问题。 我的ja
大家早上好 我在学习 Android 的道路上还面临着另一个问题。我用 CSV 文件的内容制作了一个动态 TableLayout。我需要当我点击/触摸表格中的一行时,颜色应该改变,然后点击一个按钮获取
是否可以并排显示两个 TableLayout(在 RelativeLayout 中)以使两个表格具有相同的宽度?我只是不知道该怎么做。我已经尝试过将 android:stretchColumns="*
我是一名优秀的程序员,十分优秀!