2017-01-19 4 views
0

Итак, я создал собственный ListView для моего международного фрагмента, но приложение не ответит, когда я его нажму.
У меня также есть проблема с рендерингом в моем XML, и появляется циклическая ошибка, если я привяжу ее к текущему макету.ListView в ошибке фрагмента

Heres мой код TabInternationalFragment.java

package com.example.guitarista.citem; 

import android.content.Context; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.ListFragment; 
import android.support.v7.widget.DefaultItemAnimator; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.HashMap; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class TabInternationalFragment extends ListFragment { 

    String[] players={"Player1","Player2", "Player3"}; 
    int[] images = {R.drawable.custom_mf_logo,R.drawable.custom_mf_logo,R.drawable.custom_mf_logo}; 

    ArrayList<HashMap<String, String>> data=new ArrayList<HashMap<String, String>>() ; 
    SimpleAdapter adapter; 

    public TabInternationalFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.fragment_tab_international, container, false); 

     //code for fill 
     HashMap<String, String> map = new HashMap<String, String>(); 
     for (int i=0;i<players.length;i++) 
     { 
      map = new HashMap<String, String>(); 
      map.put("Player", players[i]); 
      map.put("Image", Integer.toString(images[i])); 
      data.add(map); 
     } 
     String[] from={"Player", "Image"}; 
     int[] to = {R.id.nameTxt, R.id.imageView1}; 
     adapter = new SimpleAdapter(getActivity(), data, R.layout.model, from, to); 
     setListAdapter(adapter); 
     //-------------------------------------------- 
     return v; 


    } 

    @Override 
    public void onStart(){ 
     super.onStart(); 

     getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> av, View view, int position, long id) { 
       Toast.makeText(getActivity(), data.get(position).get("Player"), Toast.LENGTH_SHORT); 
      } 
     }); 
    } 



} 

fragment_tab_international.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity"> 


    <fragment 
     android:id="@+id/fragment1" 
     android:name="com.example.guitarista.citem.TabInternationalFragment" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="81dp" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="38dp" 
     android:text="Fragment Custom ListView" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     /> 

</RelativeLayout> 

LogCat

01-19 10:48:14.085 16258-16258/com.example.guitarista.citem E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.example.guitarista.citem, PID: 16258 
                       java.lang.StackOverflowError: stack size 8MB 
                        at java.lang.reflect.Constructor.newInstance(Native Method) 
                        at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
                        at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
                        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
                        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                        at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                        at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
                        at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                        at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                        at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
                        at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                        at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                        at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
                        at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                        at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                       at android.support.v4.app.FragmentManagerIm 
01-19 10:48:14.100 16258-16258/com.example.guitarista.citem I/art: WaitForGcToComplete blocked for 7.838ms for cause Alloc 
01-19 10:48:14.250 16258-16277/com.example.guitarista.citem I/art: Background partial concurrent mark sweep GC freed 118695(11MB) AllocSpace objects, 5(55MB) LOS objects, 25% free, 188MB/252MB, paused 994us total 134.540ms 
01-19 10:48:14.250 16258-16258/com.example.guitarista.citem I/art: WaitForGcToComplete blocked for 130.630ms for cause Alloc 
01-19 10:48:14.830 16258-16258/com.example.guitarista.citem I/art: Alloc sticky concurrent mark sweep GC freed 246886(25MB) AllocSpace objects, 9(20MB) LOS objects, 13% free, 199MB/231MB, paused 1.067ms total 54.250ms 
01-19 10:48:15.100 16258-16258/com.example.guitarista.citem D/Error: ERR: exClass=java.lang.StackOverflowError 
01-19 10:48:15.100 16258-16258/com.example.guitarista.citem D/Error: ERR: exMsg=stack size 8MB 
01-19 10:48:15.100 16258-16258/com.example.guitarista.citem D/Error: ERR: file=Constructor.java 
01-19 10:48:15.100 16258-16258/com.example.guitarista.citem D/Error: ERR: class=java.lang.reflect.Constructor 
01-19 10:48:15.100 16258-16258/com.example.guitarista.citem D/Error: ERR: method=newInstance line=-2 
01-19 10:48:15.125 16258-16277/com.example.guitarista.citem W/art: Suspending all threads took: 20.942ms 
01-19 10:48:15.219 16258-16258/com.example.guitarista.citem D/Error: ERR: stack=java.lang.StackOverflowError: stack size 8MB 
                     at java.lang.reflect.Constructor.newInstance(Native Method) 
                     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
                     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
                     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
                     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                     at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                     at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
                     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                     at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                     at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
                     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                     at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                     at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
                     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                     at com.example.guitarista.citem.TabInternationalFragment.onCreateView(TabInternationalFragment.java:43) 
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
                     at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
                     at android.support.v4.app.F 
01-19 10:48:15.221 16258-16258/com.example.guitarista.citem D/Error: ERR: TOTAL BYTES WRITTEN: 15024956 
01-19 10:48:15.221 16258-16258/com.example.guitarista.citem E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! 
01-19 10:48:15.222 16258-16258/com.example.guitarista.citem E/AndroidRuntime: Error reporting crash 
                       android.os.TransactionTooLargeException 
                        at android.os.BinderProxy.transactNative(Native Method) 
                        at android.os.BinderProxy.transact(Binder.java:496) 
                        at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4294) 
                        at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:89) 
                        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) 
                        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 
01-19 10:48:15.222 16258-16258/com.example.guitarista.citem I/Process: Sending signal. PID: 16258 SIG: 9 

ответ

0

Вы создаете фрагмента внутри себя, так что вы есть StackOverflowError

fragment_tab_international.xml

<fragment 
     android:id="@+id/fragment1" 
     android:name="com.example.guitarista.citem.TabInternationalFragment" 

В ответ на ваши комментарии, повторно посмотреть, что учебник вы снова следующее. Посмотрите на имена файлов перед началом редактирования файлов.

Кроме того, вы используете ListFragment, так что если вы собираетесь использовать файл XML для фрагмента, вы потребность ListView с android:[email protected]:id/list. То есть documented very-well on the ListFragment pages.

ListFragment имеет макет по умолчанию, который состоит из одного вида списка. Однако, если вы хотите, вы можете настроить макет фрагмента, вернув свою собственную иерархию представлений из onCreateView (LayoutInflater, ViewGroup, Bundle). Чтобы сделать это, Ваше мнение иерархия необходимо содержать объект ListView с идентификатором «@android: идентификатор/список»

Кроме того, в видео, есть ImageView и TextViewдля адаптера макет, активность только <fragment>. Разметки фрагмента XML

+0

Какие действия следует предпринять? – SovietSenpai

+0

Не делай этого ...? Я предполагаю, что вы хотите использовать тег '' в макете активности, а не фрагмент –

+0

, но моя активность предварительно отображается с помощью кодов навигационных кодов. heres видео, которое я следил: https://www.youtube.com/watch?v=FvxXGzunujo – SovietSenpai

Смежные вопросы