SetOnClickListener (nuevo OnClickListener () no funciona en Fragment

Estoy trabajando en fragmentos de NAVigation Drawer. Andi copiar el código de Actividad a fragmentos para ejecutar en fragmento. He hecho eso, el diseño es visible, pero ninguna de las acciones del botón funciona bajo esa actividad de fragmentos.

¿Puedes decirme qué hice mal?

FragmentTwo.java

public class FragmentTwo extends Fragment { Button blog,fb,twitter,mail; ImageView dateimg; private boolean snet; public FragmentTwo() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(R.layout.contact_lay,container, false); System.out.println("Kaks7"); dateimg = (ImageView) getActivity().findViewById(R.id.img); blog= (Button) getActivity().findViewById(R.id.btnGplus); fb = (Button) getActivity().findViewById(R.id.btnFb); twitter = (Button)getActivity().findViewById(R.id.btnTwitter); mail = (Button)getActivity().findViewById(R.id.btnMail); System.out.println("K17"); new LongOperation().execute(); return view; } private class LongOperation extends AsyncTask<Void, Void, Void> { protected void onPreExecute() { } @Override protected Void doInBackground(Void... params) { // TODO Auto-generated method stub return null; } @Override protected void onPostExecute(Void result) { try{ fb.setOnClickListener(new OnClickListener() { public void onClick(View vb) { try{ System.out.println("7"); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/10000003242252")); startActivity(intent); }catch(Exception e){ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://m.facebook.com/facebook"))); } } }); twitter.setOnClickListener(new OnClickListener() { public void onClick(View vc) { try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?screen_name=dhoom")); startActivity(intent); }catch (Exception e) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://mobile.twitter.com/#!/dhoom"))); } } }); blog.setOnClickListener(new OnClickListener() { public void onClick(View va) { System.out.println("7s"); try { System.out.println("5s"); String url = "http://google.com"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); } catch(Exception e){ System.out.println("6s"); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))); } } }); mail.setOnClickListener(new OnClickListener() { public void onClick(View va) { try { Intent send = new Intent(Intent.ACTION_SENDTO); String uriText = "mailto:" + Uri.encode("seriouslife@gmail.com") + "?subject=" + Uri.encode("the subject") + "&body=" + Uri.encode("the body of the message"); Uri uri = Uri.parse(uriText); send.setData(uri); startActivity(Intent.createChooser(send, "Send mail...")); } catch(Exception e){ Toast.makeText(getActivity().getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); // this.progressDialog.dismiss(); } } }); dateimg.setOnClickListener(new OnClickListener() { public void onClick(View va) { if(snet==false) { soundstart(); snet=true; } } }); } catch(Exception e){ //Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); } } } public void soundstart() { // TODO Auto-generated method stub MediaPlayer mplayer =MediaPlayer.create(getActivity(),R.raw.contact_sound); mplayer.start(); } } 

Actividad

 <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" android:background="@drawable/abc"> <RelativeLayout android:layout_width="wrap_content" android:id="@+id/text" android:orientation="vertical" android:gravity="center" android:layout_gravity="center" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:gravity="center" android:paddingTop="-30dp" android:text="© iamrajkaran || Raj Karan" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#FFFFFF" android:textSize="20sp" android:textStyle="bold" /> </RelativeLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:background="@drawable/linearlayout_bg" android:orientation="vertical" android:layout_marginTop="30dp" android:padding="7dp" > <Button android:id="@+id/btnGplus" style="@style/ButtonText" android:layout_width="fill_parent" android:layout_height="48dp" android:layout_margin="4dp" android:background="@drawable/layers_blog_button_bg" android:padding="10dp" android:text="Know me on my blog" /> <Button android:id="@+id/btnFb" style="@style/ButtonText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="4dp" android:background="@drawable/layers_fb_button_bg" android:padding="10dp" android:text="Join me on facebook" /> <Button android:id="@+id/btnTwitter" style="@style/ButtonText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="4dp" android:background="@drawable/layers_twitter_button_bg" android:padding="10dp" android:text="Follow me on twitter" /> <Button android:id="@+id/btnMail" style="@style/ButtonText" android:layout_width="match_parent" android:layout_height="48dp" android:layout_margin="4dp" android:background="@drawable/layers_mail_button_bg" android:padding="10dp" android:text="Mail Your Feedback" /> </LinearLayout> <RelativeLayout android:layout_width="fill_parent" android:id="@+id/texwt" android:orientation="vertical" android:gravity="bottom" android:layout_gravity="center" android:layout_marginTop="240dp" android:layout_height="wrap_content" > <ImageView android:id="@+id/img" android:layout_width="180dp" android:layout_height="180dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:gravity="center" android:paddingLeft="30dp" android:paddingRight="0dp" android:src="@drawable/ic_form" /> </RelativeLayout> <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center" android:layout_marginTop="40dp" android:text="Touch Me" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#FFFFFF" android:textSize="22sp" android:textStyle="bold" /> </RelativeLayout>** 

Initilize widgets como este.

  dateimg = (ImageView) view.findViewById(R.id.img); blog= (Button) view.findViewById(R.id.btnGplus); fb = (Button) view.findViewById(R.id.btnFb); twitter = (Button) view.findViewById(R.id.btnTwitter); mail = (Button) view.findViewById(R.id.btnMail); 

Utilizar la vista en lugar de utilizar el getactivity() , su obtener la vista de inflar vista, así que utilice la view

 dateimg = (ImageView) view.findViewById(R.id.img); 

En lugar de usar esto,

 dateimg = (ImageView) getActivity().findViewById(R.id.img); 

Cambia igual para todas las vistas de widgets.

cambio:

 dateimg = (ImageView) getActivity().findViewById(R.id.img); blog= (Button) getActivity().findViewById(R.id.btnGplus); fb = (Button) getActivity().findViewById(R.id.btnFb); twitter = (Button)getActivity().findViewById(R.id.btnTwitter); mail = (Button)getActivity().findViewById(R.id.btnMail); 

a

 dateimg = (ImageView) view.findViewById(R.id.img); blog= (Button) view.findViewById(R.id.btnGplus); fb = (Button) view.findViewById(R.id.btnFb); twitter = (Button)view.findViewById(R.id.btnTwitter); mail = (Button)view.findViewById(R.id.btnMail); 

Su vista actual es view , y necesita inicializar su vista como la anterior o puede sobrescribir onViewCreate () y usar view en eso

en lugar de

 dateimg = (ImageView) getActivity().findViewById(R.id.img); blog= (Button) getActivity().findViewById(R.id.btnGplus); fb = (Button) getActivity().findViewById(R.id.btnFb); twitter = (Button)getActivity().findViewById(R.id.btnTwitter); mail = (Button)getActivity().findViewById(R.id.btnMail); 

Necesitas inicializar

 mail = (Button)view.findViewById(R.id.btnMail); 

Como utilizando getActivity (). FindViewById (…) u están llamando al método de su actividad mientras que usted necesita caal iguales para su frafment.

Cambie todo el View.OnClickListener() a View.OnclickListener() :

  fb.setOnClickListener(new View.OnclickListener() { @Override public void onClick(View v) { } }); 
  • ¿Cómo transferir algunos datos a otro Fragmento?
  • Fragmentos restauran el estado en la orientación cambiada
  • Cómo desencadenar onListItemClick en un ListFragment
  • Guardar y restaurar el estado de la interfaz de usuario del fragmento cuando se empuja y sale del backstack
  • Fragmento y ciclo de vida de la actividad de los padres juntos
  • El fragmento no actualiza el contenido después de volver de la pila posterior
  • SherlockFragmentActivity que causa ClassNotFoundException
  • Cómo utilizar los elementos de la barra de herramientas con Viewpager + Fragmentos
  • ¿Cómo ocultar y mostrar correctamente la barra de acciones con la nueva API de la biblioteca de diseño?
  • ¿Cómo puede manejar el descarte de un DialogFragment (compatibilidad lib) al completar un AsyncTask
  • Práctica recomendada para guardar Fragmentos para su posterior visualización
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.