ImageButton无法点击 - AndroidStudio

时间:2015-06-20 04:19:03

标签: java android android-layout android-studio

我的Android应用程序上有4个ImageButtons的声明,但到目前为止它们都无法点击,这是我的课程:

public class WelcomeScreen extends Activity {

ImageButton completeprofile;
ImageButton gotoportfolio;
ImageButton findfriends;
ImageButton readnews;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.welcome_activity);

    completeprofile = (ImageButton) findViewById(R.id.completeprofile);
    gotoportfolio = (ImageButton) findViewById(R.id.gotoportfolio);
    findfriends = (ImageButton) findViewById(R.id.findfriends);
    readnews = (ImageButton) findViewById(R.id.readnews);

    completeprofile.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent i = new Intent(WelcomeScreen.this, ProfileMember.class);
            startActivity(i);
        }
    });

    gotoportfolio.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View arg0) {
             Intent i = new Intent(WelcomeScreen.this, PortfolioMember.class);
             startActivity(i);
         }
    });

    findfriends.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View arg0) {
             Intent i = new Intent(WelcomeScreen.this, MainActivity.class);
             startActivity(i);
         }
    });

    readnews.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View arg0) {
             Intent i = new Intent(WelcomeScreen.this, WebActivity.class);
             startActivity(i);
         }
    });

}    }

这是我的布局:

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="70dp"
        android:layout_marginLeft="105dp">

        <ImageButton
            android:layout_width="55dp"
            android:layout_height="55dp"
            android:id="@+id/completeprofile"
            android:background="@drawable/completeprofile"
            android:layout_marginLeft="75dp"
            android:clickable="true" />

        <ImageButton
            android:layout_width="55dp"
            android:layout_height="55dp"
            android:id="@+id/gotoportfolio"
            android:background="@drawable/gotoportfolio"
            android:layout_marginLeft="65dp"
            android:clickable="true" />

        <ImageButton
            android:layout_width="55dp"
            android:layout_height="55dp"
            android:id="@+id/findfriends"
            android:background="@drawable/findfriends"
            android:layout_marginLeft="65dp"
            android:clickable="true" />

        <ImageButton
            android:layout_width="55dp"
            android:layout_height="55dp"
            android:id="@+id/readnews"
            android:background="@drawable/readnews"
            android:layout_marginLeft="65dp"
            android:clickable="true" />

    </LinearLayout>

它们显示完美,但到目前为止我无法点击其中任何一个,没有堆栈跟踪错误,我对此非常疑惑= /

任何人都可以对此有所了解吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

您正在使用PNG图像作为背景。您应该使用android:src属性而不是android:background来获取点击按钮时的触摸反馈。如果要更改背景,则必须使用XML可绘制选择器。请参阅docs

答案 1 :(得分:1)

这对我来说很好。

在Xml中使用它

 <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageButton"
        android:layout_marginBottom="48dp"
        android:onClick="AddInfo"
        android:background="@mipmap/ea_logo"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

在活动类中使用它

  public void AddInfo(View view) {

///// Use Your Own code /////////

}