2017-01-02 10 views
0

フラグメント内にあるImageButtonを介して、インテントのクリックイベントをアクティビティに配置しました。しかし、次のエラーでアプリケーションがクラッシュします。フラグメントビューの作成中にクラッシュする

ヌルオブジェクト参照

AccountFragment.java

public class AccountInfoFragment extends Fragment { 
    private ArrayList<MyAccountsCard> myAccountsCardData; 

    public AccountInfoFragment() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 

     View view = inflater.inflate(R.layout.fragment_account_info, container, false); 
     RecyclerView myAccountView=(RecyclerView) view.findViewById(R.id.my_accounts_view); 


     myAccountView.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL, false)); 

     initializeData(); 

     MyAccountsCardAdapter myAccountsCardAdapter= new MyAccountsCardAdapter(myAccountsCardData); 
     myAccountView.setAdapter(myAccountsCardAdapter); 
     final ImageButton iButtonShare = (ImageButton)view.findViewById(R.id.shareButton); 
     iButtonShare.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(getContext().getApplicationContext(),AccountShareActivity.class); 
       startActivity(i); 
      } 
     }); 

     return view; 
    } 

    private void initializeData(){ 
     myAccountsCardData= new ArrayList<>(); 
     myAccountsCardData.add(new MyAccountsCard("123456789","scheme1","current","120000")); 
     myAccountsCardData.add(new MyAccountsCard("123456789","scheme2","savings","5000")); 
    } 

} 
+0

を試しImageViewのかIMAGEBUTTON

を使用しているかどうかを確認uがfragment_account_info.xml – Raghavendra

+0

を投稿することができ、あなたのxmlでそのボタンの存在ですか? –

+0

[NullPointerExceptionとは何か、それを修正する方法は?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) ) – Raghavendra

答えて

3
に 'ボイドandroid.widget.ImageButton.setOnClickListener(android.view.View $ OnClickListener)' 仮想メソッドを呼び出す試み

iButtonShareオブジェクトがnullです。このボタンをxmlレイアウトR.layout.fragment_account_infoに追加してもよろしいですか?このレイアウトのボタンは正しいID(shareButton)ですか?

+0

実際に画像ボタンはカードにあり、カードはrecyclerviewを使用して配置されます。 –

0

フラグメントのgetActivity()は、フラグメントが現在関連付けられているアクティビティを返します。

第代わり getApplicationContext(のgetActivity()を追加で

 Intent i = new Intent(getActivity(),AccountShareActivity.class); 
     startActivity(i); 

アプリケーションはNULL値を持つ オブジェクト参照を使用しようとするとNullPointerExceptionがスローされます。

final ImageButton iButtonShare = (ImageButton)view.findViewById(R.id.shareButton); 

あなたのImageButtonが適切なID(R.id.shareButton)を持っていることを確認してくださいあなたのIDはcorrentない

0

、ここでエラー

final ImageButton iButtonShare = (ImageButton)view.findViewById(R.id.shareButton); 

である私はあなたがいると思います間違ったIDを使ってまた、あなたは新しい活動を開始したときに、今、この

Intent i = new Intent(getActivity().getApplicationContext(),AccountShareActivity.class); 
     startActivity(i); 
関連する問題