最后一个ImageButton不起作用,当我将最后一个ImageButton与第二个最后一个ImageButton交换时它可以工作但最后一个不能正常工作,所以我确信我的按钮正在正确注册,除了最后一个,随时我把它们换成最后一个总是不起作用,我没有隐藏的布局或任何类型的东西:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:gravity="center|left"
android:text="Choose your option(s) below:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="italic"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:orientation="horizontal"
android:layout_margin="10dp"
android:layout_weight="1"
>
<ImageButton
android:id="@+id/ibSingle"
android:layout_width="20dp"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:src="@drawable/radio_empty"
android:layout_gravity="center"
android:layout_margin="20dp"
android:scaleType="fitCenter"
android:background="@color/transparent"
/>
<TextView
android:id="@+id/tvSingle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Single"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
>
<ImageButton
android:id="@+id/ibSeeking"
android:layout_width="20dp"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:src="@drawable/radio_empty"
android:layout_gravity="center"
android:layout_margin="20dp"
android:scaleType="fitCenter"
android:background="@color/transparent"
/>
<TextView
android:id="@+id/tvSeeking"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Seeking"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
>
<ImageButton
android:id="@+id/ibDrinking"
android:layout_width="20dp"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:src="@drawable/radio_empty"
android:layout_gravity="center"
android:layout_margin="20dp"
android:scaleType="fitCenter"
android:background="@color/transparent"
/>
<TextView
android:id="@+id/tvDrinking"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Drinking"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
>
<ImageButton
android:id="@+id/ibSmoking"
android:layout_width="20dp"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:src="@drawable/radio_empty"
android:layout_gravity="center"
android:layout_margin="20dp"
android:scaleType="fitCenter"
android:background="@color/transparent"
/>
<TextView
android:id="@+id/tvSmoking"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Smoking"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
</LinearLayout>
请注意,“吸烟”ImageButton是最后一个,如果我将其与“饮酒”交换,那么吸烟工作和饮酒不起作用
JAVA:
ibSingle = (ImageButton) findViewById(R.id.ibSingle);
ibSeeking = (ImageButton) findViewById(R.id.ibSeeking);
ibDrinking = (ImageButton) findViewById(R.id.ibDrinking);
ibSmoking = (ImageButton) findViewById(R.id.ibSmoking);
sendSingle = "0";
sendSeeking = "0";
sendDrinking = "0";
sendSmoking = "0";
ibSingle.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (sendSingle.equals("0"))
{
ibSingle.setImageResource(R.drawable.radio_fill);
sendSingle = "1";
}
else if (sendSingle.equals("1"))
{
ibSingle.setImageResource(R.drawable.radio_empty);
sendSingle = "0";
}
}
});
ibSeeking.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (sendSeeking.equals("0"))
{
ibSeeking.setImageResource(R.drawable.radio_fill);
sendSeeking = "1";
}
else if (sendSeeking.equals("1"))
{
ibSeeking.setImageResource(R.drawable.radio_empty);
sendSeeking = "0";
}
}
});
ibDrinking.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (sendDrinking.equals("0"))
{
ibDrinking.setImageResource(R.drawable.radio_fill);
sendDrinking = "1";
}
else if (sendDrinking.equals("1"))
{
ibDrinking.setImageResource(R.drawable.radio_empty);
sendDrinking = "0";
}
}
});
ibSmoking.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (ibSmoking.equals("0"))
{
Toast.makeText(getApplicationContext(), "last-button clicked", Toast.LENGTH_SHORT).show();
ibSmoking.setImageResource(R.drawable.radio_fill);
sendSmoking = "1";
}
else if (sendSmoking.equals("1"))
{
Toast.makeText(getApplicationContext(), "last-button clicked", Toast.LENGTH_SHORT).show();
ibSmoking.setImageResource(R.drawable.radio_empty);
sendSmoking = "0";
}
}
});
是的,我更喜欢编写自己的手动收音机或复选框按钮,而不是使用内置方法。
除了最后一个ImageButton(无论哪个放在最后一个)之外,一切都按预期工作,它只发出咔嗒声。我试图添加一个firth虚拟ImageButton现在最后2个ImageButton('Dummy'和'Smoking')不起作用,如果它确实那么我会让'Dummy'看不见但是太糟糕了,黑客不起作用。
答案 0 :(得分:1)
如果( ibSmoking .equals(“0”))将 ibSmoking 替换为 sendSmoking ,请检查您是否使用了条件。< / p>
答案 1 :(得分:0)
if (ibSmoking.equals("0"))
clickListener中此行ibSmoking
中的代码出错。你在这一行检查了错误的条件。
答案 2 :(得分:0)
主要问题在于你的情况如果(ibSmoking.equals(&#34; 0&#34;))。 您正在使用imagebutton name而不是String值检查条件。 将此条件替换为if(sendSmoking.equals(&#34; 0&#34;))。