Исключение происходит в строке "rowTxt.setText", и я, по жизни, не могу понять, почему.
Вот мой код
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View rowView = convertView;
if(rowView == null)
{
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(mResourceId, null);
}
Friend friend = mFriendsList.get(position);
TextView rowTxt = (TextView) rowView.findViewById(R.id.rowtext);
Log.i("name", friend.getmName());
rowTxt.setText(friend.getmName());
return rowView;
}
Выход Logcat:
04-24 04: 07: 14.093: DEBUG / AndroidRuntime (553): выключение виртуальной машины
04-24 04: 07: 14.093: WARN / dalvikvm (553): threadid = 1: поток выходит с необработанным исключением (группа = 0x4001d800)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): java.lang.NullPointerException
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): в com.friendsapp.FriendsArrayAdapter.getView (FriendsArrayAdapter.java:46)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.AbsListView.obtainView (AbsListView.java:1315)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.ListView.makeAndAddView (ListView.java:1727)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.ListView.fillDown (ListView.java:652)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.ListView.fillFromTop (ListView.java:709)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.ListView.layoutChildren (ListView.java:1580)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.AbsListView.onLayout (AbsListView.java:1147)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.View.layout (View.java:7035)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1249)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.LinearLayout.layoutVertical (LinearLayout.java:1125)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.LinearLayout.onLayout (LinearLayout.java:1042)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.View.layout (View.java:7035)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.FrameLayout.onLayout (FrameLayout.java:333)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.View.layout (View.java:7035)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1249)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.LinearLayout.layoutVertical (LinearLayout.java:1125)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.LinearLayout.onLayout (LinearLayout.java:1042)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.View.layout (View.java:7035)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.widget.FrameLayout.onLayout (FrameLayout.java:333)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.View.layout (View.java:7035)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.ViewRoot.performTraversals (ViewRoot.java:1045)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.view.ViewRoot.handleMessage (ViewRoot.java:1727)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.os.Handler.dispatchMessage (Handler.java:99)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.os.Looper.loop (Looper.java:123)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на android.app.ActivityThread.main (ActivityThread.java:4627)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на java.lang.reflect.Method.invokeNative (собственный метод)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): в java.lang.reflect.Method.invoke (Method.java:521)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
04-24 04: 07: 14.152: ОШИБКА / AndroidRuntime (553): в dalvik.system.NativeStart.main (собственный метод)04-24 04: 07: 14.182: WARN / ActivityManager (65): принудительно завершить действие com.friendsapp / .FriendsActivity
04-24 04: 07: 14.973: WARN / ActivityManager (65): Тайм-аут паузы активности для HistoryRecord {44e9c3c8 com.friendsapp / .FriendsActivity}
04-24 04: 07: 17.822: DEBUG / dalvikvm (553): GC_FOR_MALLOC освободил 5842 объекта / 457336 байт за 113 мс
04-24 04: 07: 18.732: INFO / Process (553): отправка сигнала. PID: 553 SIG: 9
04-24 04: 07: 18.772: INFO / WindowManager (65): WIN DEATH: Window {4503df58 AtchDlg: com.friendsapp / com.friendsapp.FriendsActivity paused = false}
04-24 04: 07: 18.772: INFO / ActivityManager (65): процесс com.friendsapp (pid 553) умер.
04-24 04: 07: 18.782: INFO / WindowManager (65): WIN DEATH: Window {44f78f88 com.friendsapp / com.friendsapp.FriendsActivity paused = false}
04-24 04: 07: 26.814: WARN / ActivityManager (65): Тайм-аут уничтожения активности для HistoryRecord {44e9c3c8 com.friendsapp / .FriendsActivity}
04-24 04: 12: 07.102: DEBUG / SntpClient (65): сбой времени запроса: java.net.SocketException: семейство адресов не поддерживается протоколом
РЕДАКТИРОВАТЬ: я выяснил проблему с помощью corlettk. Короче говоря, я назначил свой listadapter следующим образом:
FriendsArrayAdapter fAdapter = new FriendsArrayAdapter(FriendsActivity.this, android.R.simple_list_item_1, mFriendsList);
Я сделал это, потому что изначально у меня был общий listadapter, который не вмещал мой объект Friend; никогда не думал изменить его.
Поэтому, когда setAdapter вошел в мой FriendsArrayAdapter, он выполнил поиск идентификатора simple_list_item_1 для R.id.rowtext, который он не нашел. Исправление было изменить вышеупомянутый вызов на
FriendsArrayAdapter fAdapter = new FriendsArrayAdapter(FriendsActivity.this, R.layout.row_layout, mFriendsList);
(row_layout - это имя моего XML-файла)