setContentView使我的ImageView按钮不可点击?

时间:2011-11-07 05:19:59

标签: android imageview android-imageview

在我更改应用中显示的布局后,弄清楚为什么我的ImageView按钮停止工作时遇到了一些麻烦。如果您发现此代码有任何问题,请告诉我...即使将布局设置为最初在OnCreate中设置的布局,也会在更改setContentView后调用按钮。基本上我希望能够通过调用此函数随时将视图重置为已知状态。

感谢您的任何想法!这是打破按钮的代码,实际上只有调用setContentView的行会破坏按钮,但这里也是函数的其余部分:

    public void defaultrailview(){
      setContentView(R.layout.railtrick);
      ImageView jumpsbutton = (ImageView) findViewById(R.id.jumpsbutton);
      ImageView settingsbutton = (ImageView) findViewById(R.id.settingsbutton);
      jumpsbutton.setClickable(true);
      settingsbutton.setClickable(true);    
      ImageView ghost1 = (ImageView)findViewById(R.id.rt1);
      ghost1.setAlpha(51);
      ImageView ghost2 = (ImageView)findViewById(R.id.rt2);
      ghost2.setAlpha(51);
      ImageView ghost3 = (ImageView)findViewById(R.id.rt3);
      ghost3.setAlpha(51);
      ImageView ghost4 = (ImageView)findViewById(R.id.rt4);
      ghost4.setAlpha(51);
      ImageView railtext = (ImageView)findViewById(R.id.railstext);
      railtext.setAlpha(127);
      ImageView shaketoroll = (ImageView)findViewById(R.id.ShakeToRoll);
      shaketoroll.setVisibility(4);

}

和railstrick的XML:         

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/railstext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:paddingLeft="20dp"
            android:src="@drawable/railstext" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/alldice"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight=".5"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/dicerow1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >

            <ImageView
                android:id="@+id/rt1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:layout_weight="1"
                android:adjustViewBounds="true"
                android:paddingLeft="10dp"
                android:src="@drawable/diceghost"/>

            <ImageView
                android:id="@+id/rt2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:layout_weight="1"
                android:adjustViewBounds="true"
                android:paddingRight="10dp"
                android:src="@drawable/diceghost"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/dicerow2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >

            <ImageView
                android:id="@+id/rt3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:layout_marginTop="5dp"
                android:layout_weight="1"
                android:adjustViewBounds="true"
                android:paddingLeft="10dp"
                android:src="@drawable/diceghost"/>

            <ImageView
                android:id="@+id/rt4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:layout_marginTop="5dp"
                android:layout_weight="1"
                android:adjustViewBounds="true"
                android:paddingRight="10dp"
                android:src="@drawable/diceghost"/>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/buttons"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/jumpsbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:clickable="true"
            android:paddingLeft="20dp"
            android:src="@drawable/jumpsbuttonpassive" />

        <ImageView
            android:id="@+id/railsbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:clickable="true"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:src="@drawable/railsbuttonactive" />

        <ImageView
            android:id="@+id/settingsbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:clickable="true"
            android:paddingRight="20dp"
            android:src="@drawable/settingsbuttonpassive" />
    </LinearLayout>
</LinearLayout>

<ImageView
    android:id="@+id/ShakeToRoll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:adjustViewBounds="true"
    android:padding="30dp"
    android:src="@drawable/shaketoroll" />

再次感谢。爱你们所有人!

2 个答案:

答案 0 :(得分:2)

您可以在xml中尝试android:onclick="imageButton"并在类中创建一个函数,如

public void imageButton(View view){
   // your code
}

答案 1 :(得分:2)

将相同的值传递给setContentView时,您仍然要求对该资源进行充气 - 这意味着所有新对象。

您需要重新分配onClickListeners,因为屏幕上不再显示旧按钮。