David Bateman
David Bateman

Reputation: 21

Respond to send button

I installed the Android SDK bundle today and I am following the "My First App" tutorial and I am stuck, it states:

Open the MainActivity class (located in the project's src/ directory) and add the corresponding method:

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button
}

Where do I put this in the file? and is this the "MainActivity.java" file?

I have tried and I keep getting errors so I am obviously going wrong somewhere.

activity_main.xml:

<LinearLayout 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:orientation="horizontal">
    <EditText android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send"
        android:onClick="sendMessage" />
</LinearLayout>

MainActivity.java:

    package com.example.myfirstapp;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;



public class MainActivity extends Activity {

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


    @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;
    }

}

Hope I have made my problem clear, I looked on the forum for an answer but I couldn't find anything.

Upvotes: 2

Views: 1221

Answers (3)

Russ
Russ

Reputation: 1

Put it in MainActivity.java at the top right after

public class MainActivity extends ActionBarActivity {

After you do this, you may have to import. Do this by pressing control / shift / O (not zero)

Upvotes: 0

vin
vin

Reputation: 11

If you are a new android developer and doing your first so start from basic like launch new activity it contain hello world or any text view, button then you will clear idea about application.

  1. create your android application
  2. in XML layout drag the button and text view
  3. run your first app.
  4. you will get your output.

Upvotes: 0

Raghunandan
Raghunandan

Reputation: 133560

If you have a button in your(say activity_main.xml) xml layout and you have the below attribute for button

 android:onClick="sendMessage"

and you have the below in MainActiivty.java

 setContentView(R.layout.activity_main); 

You should have the below in MainActivity.java

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button
}

Example:

MainActivity.java

// Your imports
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //setting the layout to activity
}
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button
}

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical">

    // other widgets
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="146dp"
        android:onClick="sendMessage"
        android:text="Button" />

</RelativeLayout>

Upvotes: 3

Related Questions