我已将 TextView 数组定义为最终数组。我为所有数组元素设置了一个 OnClickListener(),并且我可以使用 setBackground (即使数组没有设置为最终数组)。但我不能使用在操作期间返回 NullPointerException 的 getText() 方法。
你们知道为什么会出现问题吗?
final ArrayList<TextView> seats = new ArrayList<TextView>();
@Override
public void onCreate(Bundle savedInstanceState) {
.
.
seats.add((TextView) findViewById(R.id.A1));
seats.add((TextView) findViewById(R.id.A2));
seats.add((TextView) findViewById(R.id.A3));
.
.
for (int i = 0; i<seats.size(); i++)
seats.get(i).setOnClickListener(seatClick);
.
.
}
OnClickListener seatClick = new OnClickListener()
{
@Override
public void onClick(View v)
{
v.setBackgroundColor(-16711681);
Toast.makeText(getApplicationContext(), ((TextView)v).getText().toString(), Toast.LENGTH_SHORT);
}
};
TextView 的定义如下:
<TextView
android:id="@+id/A1"
android:background="#0AFC1A"
android:textColor="#FFFFFF"
android:layout_width="30dp"
android:layout_height="30dp"
android:gravity="center"
android:text="A1" />