ImageButtons无效 - Android Studio

时间:2015-06-27 19:20:51

标签: android android-layout android-intent android-activity

我有WelcomeActivity,我编写了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 view) {
            Intent i = new Intent(WelcomeScreen.this, LoginMember.class);
            startActivity(i);
        }
    });

    gotoportfolio.setOnClickListener(new View.OnClickListener() {

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

    findfriends.setOnClickListener(new View.OnClickListener() {

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

    readnews.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View view) {
             Intent i = new Intent(WelcomeScreen.this, RegisterMember.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:src="@drawable/completeprofile"
            android:layout_marginLeft="75dp"
            android:contentDescription="completeprofile" />

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

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

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

    </LinearLayout>

为什么会这样?意图启动可能存在一些问题吗?

有什么想法吗?

提前感谢!

修改

这是清单:

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="21"
    tools:overrideLibrary="android.support.multidex" />

<supports-screens
    android:largeScreens="true"
    android:normalScreens="false"
    android:requiresSmallestWidthDp="600"
    android:smallScreens="false"
    android:xlargeScreens="true" />

<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"
    android:maxSdkVersion="18" />

<!-- <uses-sdk  /> -->
<application
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/logo"
    android:label="Shairlook"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.kkoci.shairlook.SplashScreen"
        android:configChanges="orientation"
        android:label="Shairlook"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.kkoci.shairlook.MemberActivity"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.RegisterMember"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.LoginMember"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.WelcomeScreen"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >

    </activity>
    <activity
        android:name="com.kkoci.shairlook.YoutubeVid"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >

    </activity>
    <activity
        android:name="com.kkoci.shairlook.ProfileMember"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.PortfolioMember"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.ForgotPassActivity"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.MainActivity"
        android:configChanges="orientation"
        android:label="Shairlook"
        android:screenOrientation="portrait" >


    </activity>
    <activity
        android:name="com.kkoci.shairlook.WebActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Holo" >

    </activity>

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
</application>

2 个答案:

答案 0 :(得分:3)

@override不会导致问题。如果在清单中添加活动并以相同的pkg存在活动,那就太奇怪了。

  1. 请你在onClick()中添加调试登录,这样可以缩小问题是否真的与回调有关。

  2. 尝试android:clickable =&#34; true&#34; / android:focusable =&#34; true&#34; / android:focusableInTouchMode =&#34; true&#34;作为ImageButton的附加属性

  3. 希望这有帮助!

答案 1 :(得分:0)

你应该从每个onClick方法上面删除'@Override',不需要它们,这可能会引起你的问题。