2015-06-20 4 views
0

У меня есть эти объявления для 4 ImageButtons на моем Android приложение, но до сих пор они не являются интерактивными, это мой класс:ImageButton не кликабельна - AndroidStudio

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> 

Они показывают, отлично, но до сих пор я не могу нажать любую из них, никакой ошибки StackTrace, я совершенно озадачен об этом =/

Никто не может пролить некоторый свет на это?

Заранее благодарен!

+0

Перейти Построить> Очистка проекта и повторите попытку. –

+0

Работают ли обычные кнопки? –

+0

Да, я не очистил проект, так как я добавил его, позвольте мне попробовать то, что предлагает @GiruBhai – NeoVe

ответ

1

Вы используете PNG-изображения в качестве фона. Вы должны использовать атрибут android:src вместо android:background, чтобы получить обратную связь при нажатии кнопки. Если вы хотите изменить фон, вы должны использовать селективный XML-селектор. См. docs

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 ///////// 

}