2017-10-06 3 views
0

Je suis nouveau à Java/android développer et essayer de suivre les instructions du site Android, mais ne trouve pas de réponse claire à l'implémentation onclicklistener dans le fragment. S'il vous plaît aidez-moi pourquoi il continue de s'écraser dans l'exécution quand je clique.Débutant essayant onClickListener dans le fragment. Il continue de s'écraser en cours d'exécution

public class TestFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_mngr_user, container, false); 

     return v; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mDBhelper = new UserBaseHelper(getActivity()); 


     // Capture our button from layout 
     TextView TextviewShow = (TextView)getActivity().findViewById(R.id.text_show); 

     // Register of onClick listener with the implementation above 
     TextviewShow.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // do something when the text_show is clicked 
       displayInfo(); 

      } 
     }); 
    } 

..... 

} 
+0

changez cette '(TextView) getActivity(). FindViewById (R.id.text_show);' à (TextView) v.findViewById (R.id.text_show); ' –

Répondre

1

essayer cette

utilisent ce

TextView TextviewShow = (TextView)v.findViewById(R.id.text_show); 

au lieu de cette

TextView TextviewShow = (TextView)getActivity().findViewById(R.id.text_show); 

changer votre code comme ci-dessous

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_mngr_user, container, false); 

     // Capture our button from layout 
     TextView TextviewShow = (TextView)v.findViewById(R.id.text_show); 

     // Register of onClick listener with the implementation above 
     TextviewShow.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // do something when the text_show is clicked 
       displayInfo(); 

      } 
     }); 
     return v; 
    } 
0

Essayez cette

public class TestFragment extends Fragment { 
    View v; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      v = inflater.inflate(R.layout.fragment_mngr_user, container, false); 

      return v; 
     } 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      mDBhelper = new UserBaseHelper(getActivity()); 


      // Capture our button from layout 
      TextView TextviewShow = (TextView)v.findViewById(R.id.text_show); 

      // Register of onClick listener with the implementation above 
      TextviewShow.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // do something when the text_show is clicked 
        displayInfo(); 

       } 
      }); 
     } 

    ..... 

    } 
0

Déplacer votre code de onCreate() méthode pour onCreateView() méthode et modifier le code suivant

De

(TextView)getActivity().findViewById(R.id.text_show); 

à

(TextView)v.findViewById(R.id.text_show); 
+0

THanks !!! Ça a marché – Charles