2015-03-16 1 views
0

код предназначен, чтобы открыть WebView, когда пользователь нажимает на кнопку, но я получаю сообщение об ошибке:URI.parse и ImageButton ошибка

java.lang.NullPointerException: Attempt to invoke virtual method 'void  android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
    at info.teammumu.cougarcardapp.SocialMediaFragment.onCreateView(SocialMediaFragment.java:28) 

для кода Java:

public class SocialMediaFragment extends Fragment { 

public ImageButton fbbutton; 
public ImageButton twbutton; 
public ImageButton igbutton; 

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

fbbutton = (ImageButton) getActivity().findViewById(R.id.fbbutton); 
twbutton = (ImageButton) getActivity().findViewById(R.id.twbutton); 
igbutton = (ImageButton) getActivity().findViewById(R.id.igbutton); 

fbbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/universityofhouston")); 
     startActivity(browserIntent); 
    } 
}); 

twbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("website")); 
     startActivity(browserIntent); 

    }}); 

igbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("website")); 
     startActivity(browserIntent); 

    }}); 
return rootView; 
}} 

Я задавал такой вопрос раньше, но на него никогда не отвечали или, может быть, я этого не понимал ... How to open a webview from imagebutton? Спасибо всем, кто может с этим помочь! Я пытался решить это в течение последних нескольких дней, но не добился успеха. Он падает, и я не могу открыть вкладку.

ответ

1

Использование rootView вместо getActivity(), чтобы получить доступ мнения Фрагмент макета, который возвращается из onCreateView:

fbbutton = (ImageButton) rootView.findViewById(R.id.fbbutton); 
twbutton = (ImageButton) rootView.findViewById(R.id.twbutton); 
..... 

Потому что getActivity возвратного контексте деятельности, в котором текущий фрагмент добавляется поэтому вызов getActivity().findViewById(<ID>) средства с доступом вид из деятельности макете вместо Фрагмента.

+0

Пожалуйста, объясните. Я новичок в кодировании ... – daybis13

+0

@ daybis13: см. Мой ответ –

+0

Спасибо !!! Ты обалденный! – daybis13

0

если у вас есть кнопки в ту же точку зрения, что вы надувать, то вы должны изменить эти строки:

fbbutton = (ImageButton) getActivity().findViewById(R.id.fbbutton); 
twbutton = (ImageButton) getActivity().findViewById(R.id.twbutton); 
igbutton = (ImageButton) getActivity().findViewById(R.id.igbutton); 

быть похожим:

fbbutton = (ImageButton) rootView.findViewById(R.id.fbbutton); 
twbutton = (ImageButton) rootView.findViewById(R.id.twbutton); 
igbutton = (ImageButton) rootView.findViewById(R.id.igbutton); 
+0

три минуты опоздали, но правильно! и тебе спасибо! – daybis13