Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Start another activity by clicking a button

So heres my problem. I set up a button that when clicked should open a new activity but when it is clicked I receive an error: Unfortunately "app_name" has stopped working my logcat says :Fatal Exception Main

So heres my xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="58dp"
        android:text="Monday"
        android:textSize="20sp"/>

       <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        android:text="Tuesday" />

       <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        android:text="Wednesday" />

       <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        android:text="Thursday" />

       <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        android:text="Friday" />

       <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView5"
        android:layout_below="@+id/textView5"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        android:text="Saturday" />

       <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView6"
        android:layout_below="@+id/textView6"
        android:layout_marginTop="30dp"
        android:textSize="20sp"
        android:text="Sunday" />

       <Button
           android:id="@+id/button1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView1"
           android:layout_alignBottom="@+id/textView1"
           android:layout_alignParentRight="true"
           android:layout_marginRight="46dp"
           android:text="Edit"
           android:onClick="mondayintent" />

       <Button
           android:id="@+id/button2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView2"
           android:layout_alignBottom="@+id/textView2"
           android:layout_alignLeft="@+id/button1"
           android:text="Edit" />

       <Button
           android:id="@+id/button3"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView3"
           android:layout_alignBottom="@+id/textView3"
           android:layout_alignLeft="@+id/button2"
           android:text="Edit" />

       <Button
           android:id="@+id/button4"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView4"
           android:layout_alignBottom="@+id/textView4"
           android:layout_alignLeft="@+id/button3"
           android:text="Edit" />

       <Button
           android:id="@+id/button5"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView5"
           android:layout_alignBottom="@+id/textView5"
           android:layout_alignLeft="@+id/button4"
           android:text="Edit" />

       <Button
           android:id="@+id/button6"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView6"
           android:layout_alignBottom="@+id/textView6"
           android:layout_alignLeft="@+id/button5"
           android:text="Edit" />

       <Button
           android:id="@+id/button7"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignBaseline="@+id/textView7"
           android:layout_alignBottom="@+id/textView7"
           android:layout_alignLeft="@+id/button6"
           android:text="Edit" />
</RelativeLayout>

and the second Xml to which im trying to reach in another activity:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:textSize="40sp"
        android:text="Monday" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="36dp"
        android:layout_toLeftOf="@+id/textView1"
        android:ems="3"
        android:inputType="time" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText1"
        android:layout_alignBottom="@+id/editText1"
        android:layout_centerHorizontal="true"
        android:ems="3"
        android:inputType="time" >
        <requestFocus />
    </EditText>

      <Spinner 
        android:id="@+id/profileSelector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/editText2"
        android:layout_toRightOf="@+id/textView1"
        android:ems="3" 
        android:prompt="@string/profile"
        android:entries="@array/profileSelector"/>
</RelativeLayout>

Finally the code that supports both:

package com.example.hush;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.Button;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {
      Intent clickedDay;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainlayout);
        Button mondayEdit=(Button)findViewById(R.id.button1);
    }

    public void mondayintent()
    {
        clickedDay= new Intent(this,Monday.class);
        startActivity(clickedDay);
    }

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

second activity code:

package com.example.hush;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;

public class Monday extends Activity{           

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

Below I have added my android-manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hush"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.hush.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>
         <activity
            android:name="com.example.hush.Monday"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.example.hush.Monday" />    
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>            
    </application>    
</manifest>
like image 981
alaboudi Avatar asked Aug 31 '13 16:08

alaboudi


People also ask

How do I start an activity from another app?

If both application have the same signature (meaning that both APPS are yours and signed with the same key), you can call your other app activity as follows: Intent LaunchIntent = getActivity(). getPackageManager(). getLaunchIntentForPackage(CALC_PACKAGE_NAME); startActivity(LaunchIntent);


2 Answers

You need to call another activity like this inside the OnClickListener() of button

Button mondayEdit= (Button)findViewById(R.id.button1);
    mondayEdit.setOnClickListener(new OnClickListener() 
    {   public void onClick(View v) 
        {   
            Intent intent = new Intent(main.this, secondActivity.class);
                startActivity(intent);      
                finish();
        }
    });
like image 143
Mothy Avatar answered Oct 11 '22 19:10

Mothy


Probably your code is showing error due to Android manifest file, Try adding proper class in manifest file. Making first activity as main , and other as default.Others part of code is exactly fine.

like image 31
Ishant Mrinal Avatar answered Oct 11 '22 20:10

Ishant Mrinal