Anthony Bonarrigo
Anthony Bonarrigo

Reputation: 180

OnClickListener not working to launch Activity

I have an Activity A that implements 3 Button objects inside of a TableRow. Each button has an OnClickListener that launches another activity set up like so:

public class MainMenu extends AppCompatActivity {

private static final int RECOGNIZE_REQUEST_CODE = 100;
private static final int SEARCH_REQUEST_CODE = 200;
private static final int MAP_REQUEST_CODE = 300;

private Button recognize, search, viewMap;
private TableRow table;
private TextView welcome;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_menu);

    recognize = (Button) findViewById(R.id.recognizeMenuButton);
    search = (Button) findViewById(R.id.searchMenuButton);
    viewMap = (Button) findViewById(R.id.mapMenuButton);
    table = (TableRow) findViewById(R.id.table);

    //Set onClickListener for recognize button
    recognize.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d("Recognize listener", "Inside recognize listener onclick");
            Intent recognizeIntent = new Intent(MainMenu.this, RecognizeActivity.class);
            startActivity(recognizeIntent);
        }
    });

    search.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d("Search", "Inside search listener onclick");
            Intent searchIntent = new Intent(MainMenu.this, SearchActivity.class);
            startActivity(searchIntent);
        }
    });

    viewMap.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d("Map listener", "Inside map listener onclick");
            Intent mapIntent = new Intent(MainMenu.this, MapActivity.class);
            startActivity(mapIntent);
        }
    });
}

The corresponding layout file is implemented as so:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main_menu"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="abon219.com.musicmappr.MainMenu">

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:id="@+id/table"
        android:layout_marginTop="116dp"
        android:layout_marginStart="49dp"
        android:layout_below="@+id/welcome"
        android:layout_alignParentStart="true">

        <Button
            android:text="@string/recognize"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/recognizeMenuButton" />

        <Button
            android:text="@string/search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/searchMenuButton"
            android:elevation="9dp" />

        <Button
            android:text="@string/viewMap"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/mapMenuButton"
            android:elevation="18dp" />

    </TableRow>

    <TextView
        android:text="@string/welcomeBack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/welcome"
        android:textSize="24sp"
        android:textStyle="normal|bold"
        android:layout_marginTop="46dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:text="@string/logout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="79dp"
        android:id="@+id/logout" />
</RelativeLayout>

The debug log does not ever output the messages that I have set in the listeners. Any idea whats going on?

Logcat output:

12-11 23:36:14.584 21251-21251/? E/Zygote: v2
12-11 23:36:14.584 21251-21251/? I/libpersona: KNOX_SDCARD checking this for 10327
12-11 23:36:14.584 21251-21251/? I/libpersona: KNOX_SDCARD not a persona
12-11 23:36:14.584 21251-21251/? W/SELinux: Function: selinux_compare_spd_ram, index[1], priority [2], priority version is VE=SEPF_SECMOBILE_6.0.1_0029
12-11 23:36:14.584 21251-21251/? E/Zygote: accessInfo : 0
12-11 23:36:14.584 21251-21251/? W/SELinux: SELinux: seapp_context_lookup: seinfo=default, level=s0:c512,c768, pkgname=abon219.com.musicmappr 
12-11 23:36:14.584 21251-21251/? I/art: Late-enabling -Xcheck:jni
12-11 23:36:14.614 21251-21251/? D/ActivityThread: Added TimaKeyStore provider
12-11 23:36:14.654 21251-21251/abon219.com.musicmappr W/ResourcesManager: getTopLevelResources: /data/app/abon219.com.musicmappr-1/base.apk / 1.0 running in abon219.com.musicmappr rsrc of package abon219.com.musicmappr
12-11 23:36:14.654 21251-21251/abon219.com.musicmappr I/InjectionManager: Inside getClassLibPath + mLibMap{0=, 1=}
12-11 23:36:14.674 21251-21251/abon219.com.musicmappr D/ResourcesManager: For user 0 new overlays fetched Null
12-11 23:36:14.674 21251-21251/abon219.com.musicmappr I/InjectionManager: Inside getClassLibPath caller 
12-11 23:36:14.684 21251-21251/abon219.com.musicmappr I/InstantRun: Instant Run Runtime started. Android package is abon219.com.musicmappr, real application class is null.
12-11 23:36:15.234 21251-21251/abon219.com.musicmappr D/InjectionManager: InjectionManager
12-11 23:36:15.234 21251-21251/abon219.com.musicmappr D/InjectionManager: fillFeatureStoreMap abon219.com.musicmappr
12-11 23:36:15.234 21251-21251/abon219.com.musicmappr I/InjectionManager: Constructor abon219.com.musicmappr, Feature store :{}
12-11 23:36:15.234 21251-21251/abon219.com.musicmappr I/InjectionManager: featureStore :{}
12-11 23:36:15.294 21251-21251/abon219.com.musicmappr W/ResourcesManager: getTopLevelResources: /data/app/abon219.com.musicmappr-1/base.apk / 1.0 running in abon219.com.musicmappr rsrc of package abon219.com.musicmappr
12-11 23:36:15.304 21251-21251/abon219.com.musicmappr W/ResourcesManager: getTopLevelResources: /data/app/abon219.com.musicmappr-1/base.apk / 1.0 running in abon219.com.musicmappr rsrc of package abon219.com.musicmappr
12-11 23:36:15.344 21251-21251/abon219.com.musicmappr W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
12-11 23:36:15.464 21251-21251/abon219.com.musicmappr D/Activity: performCreate Call Injection manager
12-11 23:36:15.474 21251-21251/abon219.com.musicmappr I/InjectionManager: dispatchOnViewCreated > Target : abon219.com.musicmappr.MainActivity isFragment :false
12-11 23:36:15.484 21251-21251/abon219.com.musicmappr D/SecWifiDisplayUtil: Metadata value : SecSettings2
12-11 23:36:15.484 21251-21251/abon219.com.musicmappr D/ViewRootImpl: #1 mView = com.android.internal.policy.PhoneWindow$DecorView{7dfac40 I.E...... R.....ID 0,0-0,0}
12-11 23:36:15.484 21251-21429/abon219.com.musicmappr D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
12-11 23:36:15.564 21251-21429/abon219.com.musicmappr D/libEGL: loaded /vendor/lib64/egl/libGLES_mali.so
12-11 23:36:15.574 21251-21429/abon219.com.musicmappr D/libEGL: eglInitialize EGLDisplay = 0x7f9b9ff178
12-11 23:36:15.574 21251-21429/abon219.com.musicmappr I/OpenGLRenderer: Initialized EGL, version 1.4

                                                                        [ 12-11 23:36:15.574 21251:21429 D/         ]
                                                                        ro.exynos.dss isEnabled: 0
12-11 23:36:15.584 21251-21429/abon219.com.musicmappr D/mali_winsys: new_window_surface returns 0x3000,  [1440x2560]-format:1
12-11 23:36:15.614 21251-21251/abon219.com.musicmappr I/InjectionManager: dispatchCreateOptionsMenu :abon219.com.musicmappr.MainActivity
12-11 23:36:15.614 21251-21251/abon219.com.musicmappr I/InjectionManager: dispatchPrepareOptionsMenu :abon219.com.musicmappr.MainActivity
12-11 23:36:15.624 21251-21429/abon219.com.musicmappr D/libGLESv1: DTS_GLAPI : DTS is not allowed for Package : abon219.com.musicmappr
12-11 23:36:15.654 21251-21251/abon219.com.musicmappr D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 84 - 0, 0) vi=Rect(0, 84 - 0, 0) or=1
12-11 23:36:15.674 21251-21251/abon219.com.musicmappr I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@43db2d6 time:276904
12-11 23:36:21.074 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:21.124 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:21.224 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:21.344 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:21.354 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:21.474 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:31.514 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:31.634 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:31.724 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:31.804 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:31.884 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:31.934 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:32.034 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:32.074 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:32.154 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:32.224 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:32.294 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:32.354 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:32.434 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:32.504 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:32.584 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:32.634 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1
12-11 23:36:32.714 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-11 23:36:32.774 21251-21251/abon219.com.musicmappr D/ViewRootImpl: ViewPostImeInputStage processPointer 1

Upvotes: 1

Views: 878

Answers (1)

OneCricketeer
OneCricketeer

Reputation: 192043

Activities are in the manifest, the code looks fine, you can load the layout, but just the buttons don't function.

You probably have loaded the wrong class that only displays that layout file

Upvotes: 1

Related Questions