Hey guys I’m creating an android application (I’m very new at it), and I’m trying to access a new activity window after i click on the sign in button, but once i click it, a window pops up that says something like “unfortunately “appname” has stopped” and exits out of the program. here is my code, can you see what is wrong with it? Thanks guys
This is the Login Class.java file
package com.example.smartsignoutv3;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class LoginScreen extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_screen);
((Button)findViewById(R.id.sign_in_button)).setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_login_screen, menu);
return true;
}
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case (R.id.sign_in_button): {
System.out.println("yo dawg");
Intent i = new Intent(this, MainScreen.class);
startActivity(i);
return;
}
}
}
}
Here is the main activity screen that I want to open up after the sign in button has been clicked
package com.example.smartsignoutv3;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
public class MainScreen extends Activity {
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_screen);
gestureDetector = new GestureDetector(new MyGestureDetector());
View mainview = (View) findViewById(R.id.welcome_screen);
// Set the touch listener for the main view to be our custom gesture listener
mainview.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
});
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Intent intent = new Intent(MainScreen.this.getBaseContext(), MainScreen.class);
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
return false;
}
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
startActivity(intent);
MainScreen.this.overridePendingTransition(
R.anim.slide_in_right,
R.anim.slide_out_left
);
// right to left swipe
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
startActivity(intent);
MainScreen.this.overridePendingTransition(
R.anim.slide_in_left,
R.anim.slide_out_right
);
}
return false;
}
// It is necessary to return true from onDown for the onFling event to register
@Override
public boolean onDown(MotionEvent e) {
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_login_screen, menu);
return true;
}
}
here is the android manifest file if that is needed
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.smartsignoutv3"
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.smartsignoutv3.LoginScreen"
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.smartsignoutv3.MainScreen"
android:label="@string/app_name">
</activity>
</application>
Change the onCreate of your LoginScreen Activity from this
To this
And in your onClick just do this directly
}