0

Я новичок в android, и я создаю приложение.
Макет приложения настроен с использованием представлений Swipe (http://developer.android.com/training/implementing-navigation/lateral.html). Один из этих фрагментов имеет ListView с историей завершенных действий. Когда пользователь нажимает кнопку, приложение выбирает некоторые данные и помещает их в списокView. Макет завышен - это индивидуальный макет. Но когда я пытаюсь нажать кнопку, приложение перестанет работать. Смотрите, что:Фрагменты, ListView и пользовательские адаптеры

адаптер

общественного класса ChronoListAdapter расширяет ArrayAdapter {

private ArrayList<RegExpItem> regExpItems = null; 
private Context context; 

public ChronoListAdapter(Context context, int resource, 
     ArrayList<RegExpItem> objects) { 
    super(context, resource, objects); 
    // TODO Auto-generated constructor stub 
} 

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    //Inflate Row and retrieve TextViews and ImageViews 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View listItem = inflater.inflate(R.layout.list_item, parent, false); 
    TextView regExpItem = (TextView) listItem.findViewById(R.id.RegExpList); 
    TextView stringItem = (TextView) listItem.findViewById(R.id.StringList); 
    ImageView matchItem = (ImageView) listItem.findViewById(R.id.MatchList); 

    //Insert Strings 
    regExpItem.setText(regExpItems.get(position).regExp); 
    stringItem.setText(regExpItems.get(position).strings); 

    //Change image for true or false 
    if (regExpItems.get(position).match) 
    { 
     matchItem.setImageResource(R.drawable.ic_checkmark_holo_light); 
    } 
    else 
    { 
     matchItem.setImageResource(R.drawable.ic_clear_search_api_holo_light); 
    } 

    return listItem; 
} 



} 

Реализация на ChronoFragment (onCreateView())

adapter = new ChronoListAdapter(context, R.layout.list_item, regExpItems); 
adapter.setNotifyOnChange(true); 
listView.setAdapter(adapter); 

OnClick

RegExpItem rei = new RegExpItem(regExp, input, true); 
regExpItems.add(rei); 
adapter.notifyDataSetChanged(); 

Eclipse не дает никаких проблем, и у меня нет проблем с конструкцией. Как я могу это решить?

PS: ArrayList пусто, когда я назначить, что мой адаптер

EDIT: После нескольких попыток, я думаю, что сбой приложения, когда я добавить элемент в ArrayList

StackTrace

Thread [<1> main] (Suspended (exception NullPointerException)) 
<VM does not provide monitor information> 
Choreographer.doCallbacks(int, long) line: 572 
Choreographer.doFrame(long, int) line: 532 
Choreographer$FrameDisplayEventReceiver.run() line: 735 
Handler.handleCallback(Message) line: 730 
Choreographer$FrameHandler(Handler).dispatchMessage(Message) line: 92 
Looper.loop() line: 137 
ActivityThread.main(String[]) line: 5289  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 525 
ZygoteInit$MethodAndArgsCaller.run() line: 739 
ZygoteInit.main(String[]) line: 555 
NativeStart.main(String[]) line: not available [native method] 

Logcat

11-08 11:06:38.360: E/AndroidRuntime(10188): FATAL EXCEPTION: main 
11-08 11:06:38.360: E/AndroidRuntime(10188): java.lang.NullPointerException 
11-08 11:06:38.360: E/AndroidRuntime(10188): at com.slinky.regexptool.ChronoListAdapter.getView(ChronoListAdapter.java:30) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.AbsListView.obtainView(AbsListView.java:2177) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.ListView.makeAndAddView(ListView.java:1840) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.ListView.fillDown(ListView.java:675) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.ListView.fillFromTop(ListView.java:736) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.ListView.layoutChildren(ListView.java:1655) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.AbsListView.onLayout(AbsListView.java:2012) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.View.layout(View.java:14296) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.View.layout(View.java:14296) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1589) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.View.layout(View.java:14296) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.View.layout(View.java:14296) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:349) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.View.layout(View.java:14296) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.View.layout(View.java:14296) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1976) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1730) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.Choreographer.doFrame(Choreographer.java:532) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.os.Handler.handleCallback(Handler.java:730) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.os.Handler.dispatchMessage(Handler.java:92) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.os.Looper.loop(Looper.java:137) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at android.app.ActivityThread.main(ActivityThread.java:5289) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at java.lang.reflect.Method.invokeNative(Native Method) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at java.lang.reflect.Method.invoke(Method.java:525) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
11-08 11:06:38.360: E/AndroidRuntime(10188): at dalvik.system.NativeStart.main(NativeMethod) 
+0

Опубликовать stacktrace, если ваше приложение разбилось – nhaarman

+0

Я разместил это. –

+1

Не могли бы вы разместить более значимый вывод logcat, потому что в этом нет ни классов ChronoFragment, ни ChronoListAdapter. – Fatih

ответ

0

Я думаю, что нужно добавить это в конструкторе ChronoListAdapter:

this.regExpItems = objects; 

Если это проблема, то ваш сбой приложения на NullPointerException. Вы можете увидеть стек для Android в Eclipse с помощью LogCat (Window -> Show view -> Other ... -> LogCat.

+0

Это не проблема. Ошибка приложения на NPE 'Thread [<1> main] (Suspended (исключение NullPointerException)) «Как я могу это исправить? –

+0

Затем, где заполняется regExpItems? – wvdz

+0

Он заселен, когда пользователь нажимает кнопку. –