0

I am pretty new to android programming and I am trying to create a simple home screen replacement/launcher.

The application runs fine and the view pager works, but for some reason when I press on any of the image buttons nothing happens.

This is my main activity java class.

package com.dntmdp.matthewhuckel.simplephonelauncher;

import android.app.Activity;
import android.content.Intent;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;


public class MainActivity extends Activity {

    Button phone;

    Button sms;

    Button people;

    Button camera;

    Button chrome;

    Button gallery;

    Button mail;

    Button calendar;

    Button facebook;

    Button map;

    Button clock;

    Button setting;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.swipe1);

        ImageButton phone = (ImageButton) findViewById(R.id.imageButton);

        phone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.phone");

                startActivity(LaunchIntent);
            }
        });

        ImageButton sms = (ImageButton) findViewById(R.id.imageButton2);

        sms.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.conversations");

                startActivity(LaunchIntent);
            }
        });

        ImageButton people = (ImageButton) findViewById(R.id.imageButton3);

        people.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.android.socialphonebook");

                startActivity(LaunchIntent);
            }
        });

        ImageButton camera = (ImageButton) findViewById(R.id.imageButton4);

        camera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.android.camera");

                startActivity(LaunchIntent);
            }
        });

        setContentView(R.layout.swipe2);

        ImageButton chrome = (ImageButton) findViewById(R.id.imageButton5);

        chrome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.chrome");

                startActivity(LaunchIntent);
            }
        });

        ImageButton gallery = (ImageButton) findViewById(R.id.imageButton6);

        gallery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.album");

                startActivity(LaunchIntent);
            }
        });

        ImageButton mail = (ImageButton) findViewById(R.id.imageButton7);

        mail.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.email");

                startActivity(LaunchIntent);
            }
        });

        ImageButton calendar = (ImageButton) findViewById(R.id.imageButton8);

        calendar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.calendar");

                startActivity(LaunchIntent);
            }
        });

        ImageButton facebook = (ImageButton) findViewById(R.id.imageButton9);

        facebook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.facebook.katana");

                startActivity(LaunchIntent);
            }
        });

        ImageButton map = (ImageButton) findViewById(R.id.imageButton10);

        map.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.apps.maps");

                startActivity(LaunchIntent);
            }
        });

        setContentView(R.layout.swipe3);

        ImageButton clock = (ImageButton) findViewById(R.id.imageButton11);

        clock.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.sonyericsson.organizer");

                startActivity(LaunchIntent);
            }
        });

        ImageButton setting = (ImageButton) findViewById(R.id.imageButton12);

        setting.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.settings");

                startActivity(LaunchIntent);
            }
        });

        setContentView(R.layout.activity_main);

        MyPagerAdapter adapter = new MyPagerAdapter();
        ViewPager myPager = (ViewPager) findViewById(R.id.viewpager_layout);
        myPager.setAdapter(adapter);
        myPager.setCurrentItem(0);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Thank you.

  • 1
    pls go through some tutorial or read the docs. You have `setContentView` more than once in the same activity which is not a good idea at all. Each Activity has its own ui and a lifecycle. You set the layout to the activity with `setContentView` – Raghunandan Aug 15 '14 at 07:25

3 Answers3

2

whenever you switch your layout using setContentView you have to re-declare the image button again, it will work only if its available in the new layout as it wont work if its not inside that layout. since you are coding launcher using switch layout this way is bad, please consider using Fragment instead.
P.S your code above to trigger the click is fine but as i mentioned above they wont work if you switched to new layout without re-declaring that imageButton again under setContentView.

Kosh
  • 6,140
  • 3
  • 36
  • 67
  • Do you mind posting an example of a redeclared image button under the set content view? –  Aug 15 '14 at 08:14
  • its obvious tho , just copy paste your previous click code along with the id declaration, but yet still i don't recommend this such way. – Kosh Aug 15 '14 at 08:17
-1
imageButton = (ImageButton) findViewById(R.id.imageButton1);

imageButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

    Toast.makeText(MyAndroidAppActivity.this,
                   "ImageButton is clicked!", Toast.LENGTH_SHORT).show();

    }

});

Try above code that is working. You do not need to use

new View.OnClickListener(){
    @Override
        public void onClick(View arg0) {
    }
}
Uli Köhler
  • 13,012
  • 16
  • 70
  • 120
manitaz
  • 1,181
  • 2
  • 9
  • 26
  • `new View.OnClickListener()` is View's OnClickListner. Its interface and you implement the interface. You do not need to use. Why is that??. read http://developer.android.com/reference/android/view/View.OnClickListener.html – Raghunandan Aug 15 '14 at 07:18
  • phone.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.phone"); startActivity(LaunchIntent); } }); – manitaz Aug 15 '14 at 07:21
-1

Check the below code, It worked for me so i assume it will work with you!:

public class MainActivity extends Activity implements OnClickListener {
    ImageView imv_Load;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imv_Load = (ImageView) findViewById(R.id.imv_Click);
        imv_Load.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.imv_Click:
            Toast.makeText(getApplicationContext(), "Button Clikced",
                    Toast.LENGTH_SHORT).show();
            break;

        default:
            break;
        }
    }
}
Kosh
  • 6,140
  • 3
  • 36
  • 67
Shanmugapriyan
  • 953
  • 1
  • 10
  • 28