最后的ImageButton不工作

时间:2017-01-11 09:57:53

标签: android

最后一个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'看不见但是太糟糕了,黑客不起作用。

3 个答案:

答案 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;))。