In this video I start my new Android tutorial. The last Android tutorial I made is still very popular, but I’m going to try and improve on it here.
If you are a beginner to Android and don’t know Java you may prefer my Android tutorial for beginners. I’ll be using Android Studio in this tutorial and I show how to install Android Studio here. All of the code follows the tutorial below.
If you like videos like this, it helps my search ranking if you share it on Google Plus with a click here [googleplusone]
Code from the Video
MainActivity.java
package com.newthinktank.helloagain.app; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends ActionBarActivity { // onCreate is executed when the activity is created @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Sets the file activity_main.xml as the user interface setContentView(R.layout.activity_main); // To be able to edit the TextView with our code we have to create it and // bind it to a TextView object. I need to use final because it will be // used in the inner class below final TextView firstTextView = (TextView) findViewById(R.id.textView); // I set up the Button just like I did the TextView Button firstButton = (Button) findViewById(R.id.firstButton); // This is how you make the Button change the text in the TextView when it is clicked firstButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { firstTextView.setText("You Clicked"); } }); } @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); } }
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.newthinktank.helloagain.app.MainActivity"> <TextView android:text="@string/hello_world" android:textSize="40sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:id="@+id/textView" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_1_text" android:id="@+id/firstButton" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="52dp" /> </RelativeLayout>
dimens.xml
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
strings.xml
<?xml version="1.0" encoding="utf-8"?> <!-- We store all the text in the strings.xml file so it is easy to translate into other languages --> <resources> <string name="app_name">HelloAgain</string> <string name="hello_world">Hello Again</string> <string name="action_settings">Settings</string> <string name="button_1_text">You Clicked</string> </resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.newthinktank.helloagain.app" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.newthinktank.helloagain.app.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
when will your Android challenge start??
I can’t wait to win Samsung Galaxy Note 3 😀
It just started yesterday. All the information is on my site
can you put a next and previous button for pagination on your site blog post so that we can easily go to next topic using this site? please. thank you
I’ll see what I can do. I only avoided that because some people don’t like having to click to different pages.
great job on doing this tutorials keep it up 😀
Thank you 🙂
can you help me with this error please and thanks
Waiting for device.
“/Applications/Android Studio.app/sdk/tools/emulator” -avd MonoForAndroid_API_8 -netspeed full -netdelay none
emulator: ERROR: This AVD’s configuration is missing a kernel file!!
In the SDK manager download the ARM EABI v7a System Image
Best tutorials given by the best teacher Dereck Banas
Thank you 🙂 It is very kind of you to say that.
i’m going to learn about android apps development, which one should i choose, the new android tutorial or the old one?
Probably the new one. I’m better at teaching Android now
This is my first time programming anything for android, but I have developed a lot for Java and different languages earlier. I followed your tutorial but I can not get it too work. First it does not like ActionBarActivity so I googled and added dependencies {
compile ‘com.android.support:appcompat-v7:+’
}
too build.gradle but now it is complaing about Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version L declared in library com.android.support:appcompat-v7:21.0.0-rc1
What am I doing wrong, is it supposed to be this hard? 😀
I have never actually experienced anything thid hard to do a simple hello world program 😀
Switch your target API to 19 and make sure you have all the proper files downloaded for 19 in the SDK manager and the errors will go away
Derek, are you going to make a video on how to create a menu bar, for example, and add an icon to it? Is this too graphics intensice i.e. GL stuff or is it easier than it looks? Also would you be able to add an action behind that button?
I’ll cover custom layouts, menu bars, etc. later. I already cover the action bar and options menu in part 4.
I think i need to learn the path to programming effectively for android. the app inventor has worked awesome and i have overcome all of the obstacles i set out to. what steps would you recommend?
i have experience with computers mostly by necessity. i did basic in high school. a but of c in college but20 years ago. where should i start now and what should i not bypass? is java what i need to learn?
a little insight could keep me from wasting vast amounts of time learning things that later will be irrelavant. thanks for your thought 🙂
Yes parts 1 – 18, minus parts 8 and 10 is all you need from my Java tutorial. Then move on to my new Android tutorial and you’ll be ready to go.
Thanks for your Tutorial.
It`s great.
cheers
You’re very welcome 🙂
Thanks for the tutorials! Love the android ones!
Thank you 🙂 More are coming in the next few days
way kool video. only downside is that it takes for ever to update the sdk manager.
Thank you 🙂 That is odd that the SDK manager is so slow. I haven’t had that issue before.
Hi there, I ran the code u given and i got an error.
error:cannot find symbol variable main
execution failed for task ‘:app.compileDebugJava
compilation failed; see the computer compiler error output for details
///////////////////////////////////////
@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;
}
/////////////////////////////////////////
the ‘main’ in error is from the code above.
may i know how do i resolve this? thank you.
Remove all of these from your file import android.R and clean the project
Really a huge fan of yours…! 🙂
Thank you 🙂 I do my best.