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("[email protected]") + "?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 puedo abrir un nuevo fragmento de otro fragmento
  • No se puede convertir de android.support.v4.app.Fragment a android.app.Fragment
  • Los fragmentos anidados desaparecen durante la animación de transición
  • Android - guardar / restaurar estado de fragmento
  • Cómo actualizar fragmento anterior después de cerrar una actividad que se inició dentro de un adaptador?
  • ¿Cómo hacer el FAB evitar ser movido en ViewPager, sin embargo, ser una parte del fragmento dentro?
  • cómo acceder al botón del fragmento A del fragmento B
  • IsValidFragment Android API 19
  • Android Fragment, No se encontró ninguna vista para id dentro de TabHost
  • Cómo configurar Custom ListView en Android Fragement?
  • Fragment onActivityCreated () se llama después de onDestroy () de Actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.