Unable to instantiate activity ComponentInfo{com.example.rajafarid.valentines/com.example.rajafarid.valentines.MainActivity2} : i am going to create a valentines app as i am a beginner so i have a first    activity(MainActivity) that have a button which activate second Activity(MainActivity 2) the problem is that it says  instantiate problem 

it says in manifest file 

com.example.rajafarid.valentines.MainActivity 2' has no default constructor. 
Validates resource references inside Android XML files.
    
here is the menifest file 

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity2">
            <intent-filter>
                <action android:name="com.example.rajafarid.valentines.MainActivity2" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:name=".DetailActivity">

            <intent-filter>
                <action android:name="com.example.rajafarid.valentines.DetailActivity" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>


    package com.example.rajafarid.valentines;

    import java.util.ArrayList;

    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.media.Image;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;

    public class MainActivity2 extends ArrayAdapter<ImageITem> {

    private Context context;
    private int layoutResourceId;
    private ArrayList<ImageITem> data = new ArrayList<ImageITem>();

    public MainActivity2(Context context, int layoutResourceId, ArrayList<ImageITem> data) {
        super(context, layoutResourceId, data);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = data;
    }

    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        ViewHolder holder;

        if (row == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);
            holder = new ViewHolder();
            holder.imageTitle = (TextView) row.findViewById(R.id.text);
            holder.image = (ImageView) row.findViewById(R.id.image);
            row.setTag(holder);
        } else {
            holder = (ViewHolder) row.getTag();
        }


        ImageITem item = data.get(position);
        holder.imageTitle.setText(item.getTitle());
        holder.image.setImageBitmap(item.getImage());
        return row;
    }

    static class ViewHolder {
        TextView imageTitle;
        ImageView image;
    }
    }

LogCat View

    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.rajafarid.valentines/com.example.rajafarid.valentines.MainActivity2}: java.lang.InstantiationException: class com.example.rajafarid.valentines.MainActivity2 has no zero argument constructor
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2515)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
                                                                                    at android.app.ActivityThread.access$900(ActivityThread.java:172)
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:145)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                                                 Caused by: java.lang.InstantiationException: class com.example.rajafarid.valentines.MainActivity2 has no zero argument constructor
                                                                                    at java.lang.Class.newInstance(Class.java:1641)
                                                                                    at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2505)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) 
                                                                                    at android.app.ActivityThread.access$900(ActivityThread.java:172) 
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
                                                                                 Caused by: java.lang.NoSuchMethodException: <init> []
                                                                                    at java.lang.Class.getConstructor(Class.java:531)
                                                                                    at java.lang.Class.getDeclaredConstructor(Class.java:510)
                                                                                    at java.lang.Class.newInstance(Class.java:1639)
                                                                                    at android.app.Instrumentation.newActivity(Instrumentation.java:1079) 
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2505) 
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) 
                                                                                    at android.app.ActivityThread.access$900(ActivityThread.java:172) 
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
