setOnClickListener (новый OnClickListener () не работает во фрагменте
Я работаю над фрагментами навигационного ящика .Andi копирует код действия в фрагменты для выполнения во фрагменте . Я сделал это , макет виден ,но ни одно действие кнопки не работает под действием этого фрагмента.
вы можете сказать мне, что я сделал неправильно ?
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();
    }
}
активность
<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>**
5 ответов
инициализировать виджеты ur, как это.
 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);
используйте представление вместо использования getactivity(), ваш получите вид из раздутого вида, поэтому используйте view
dateimg = (ImageView) view.findViewById(R.id.img);
вместо этого,
dateimg = (ImageView) getActivity().findViewById(R.id.img);
изменить аналогично для всех виджетов.
изменения:
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);
до
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);
ваш текущий вид view, и вам нужно инициализировать свое представление, как указано выше, или вы можете переопределить onViewCreate () и использовать view на
на месте
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);
вам нужно инициализировать
mail = (Button)view.findViewById(R.id.btnMail);
как с помощью getActivity().команду findViewById(...) u вызывают метод вашей деятельности, в то время как вам нужно caal то же самое для вашего frafment.
изменить все View.OnClickListener() to View.OnclickListener():
 fb.setOnClickListener(new View.OnclickListener() {
     @Override
     public void onClick(View v) {
     }
 });
