2016-02-04 2 views
-3

Я собираюсь создать приложение valentine, так как я новичок, поэтому у меня есть первая активность (MainActivity), у которой есть кнопка, которая активирует вторую активность (MainActivity 2), проблема в том, что она говорит о проблеме с экземпляромНевозможно создать экземпляр активности Compnent

говорится в файле манифеста

com.example.rajafarid.valentines.MainActivity 2' не имеет конструктор по умолчанию. Проверяет ссылки на ресурсы в файлах Android XML.

menifest файл

<?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> 

main.java

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 Посмотреть

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)  
+0

Stackoverflow не является услугой debbuging. Пожалуйста, покажите нам некоторые усилия, как вы попытались решить проблему. – Athafoud

+0

#athafoud я не знаю, как показать ..... как я новичок в области андроида ... как я могу сделать это выше упоминания, если вы можете помочь мне для удовольствия в противном случае его нормально нет проблем –

ответ

0

Ваш MainActivity2 должен быть расширен от деятельности

e.g. public class MainActivity2 extends Activity 

При взгляде на ваш код, похоже, вы хотите создать список. Если да, делайте это в одном и том же действии, реализуя пользовательский адаптер.

+0

сделал это, но ничего происходит ... Я хочу создать представление в виде сетки изображений, таких как галерея ... кажется, проблема с адаптером, как вы сказали –

+0

Пожалуйста, проверьте эту 2 ссылку ссылки - http://www.journaldev.com/9538/android-gridview -layout-example-tutorial https://blog.nraboy.com/2015/05/make-a-gallery-like-image-grid-using-native-android/ – Rakesh