ネストされたフラグメントにカスタム アダプターを実装する方法

イゴール

リストビューを埋めるために作成したカスタムアダプター内でヌルポインターエラーが発生し続けますが、その下にキャプションを持つ要素画像を保持するネストされたフラグメントでリストビューを作成しようとしています。ここにコードがあります:

カスタム アダプター:

import android.app.Activity;
import android.view.View;
        import android.content.Context;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
        import android.widget.ImageView;
        import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class ImageAdapter extends ArrayAdapter<Image> {

    ArrayList<Image> imageList;
    private Context mContext;
    int resource;

    public ImageAdapter(Context context, int resource, ArrayList<Image> imageObjects) {
        super(context, resource, imageObjects);
        this.imageList = imageObjects;
        this.mContext = context;
        this.resource = resource;
    }

    public ArrayList<Image> getImageList() {
        return imageList;
    }

    public void setImageList(ArrayList<Image> imageList) {
        this.imageList = imageList;
    }

    public Context getmContext() {
        return mContext;
    }

    public void setmContext(Context mContext) {
        this.mContext = mContext;
    }

    public int getResource() {
        return resource;
    }

    public void setResource(int resource) {
        this.resource = resource;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){

        if(convertView==null){
            LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.fragment_membership, null, true);

        }

        Image image = getItem(position);

        ImageView layoutImage = (ImageView)convertView.findViewById(R.id.membershipimage);
        layoutImage.setImageResource(image.getImageResourceID());
        TextView layoutText = (TextView)convertView.findViewById(R.id.membershipCaption);
        layoutText.setText(image.getImageCaption());

        return super.getView(position, convertView, parent);
    }
}

別のフラグメント内で使用するフラグメント:

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ListView;

import java.util.ArrayList;

public class MembershipFragment extends Fragment {

    ArrayList<Image> imageList;
    ListView membershipListView;

    public static MembershipFragment newInstance() {
        MembershipFragment fragment = new MembershipFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }



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

        return view;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        imageList = new ArrayList<>();
        for(int i=0; i<3; i++){
            Image image = new Image(R.drawable.cinnamon_apple_breakfast, "Test Caption");
            imageList.add(image);
        }
        membershipListView = (ListView)view.findViewById(R.id.membershipListView);
        try{
            ImageAdapter adapter = new ImageAdapter(getContext(), R.layout.list_view_item, imageList);
            membershipListView.setAdapter(adapter);
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
}

画像リソース ID を imageview に設定しようとすると、アプリが起動時にクラッシュし続け、getView メソッドのカスタム アダプターで nullpointer 例外がスローされます。問題はどこにありますか?

ワンクリケット

レイアウトを混乱させていると思います。

そして、getActivityここを使用する必要があります。

ImageAdapter adapter = new ImageAdapter(getContext(), R.layout.list_view_item

そのレイアウト リソースをそこに渡しました。しかし、アダプターの内部では、別のレイアウトを使用しています。

@Override
public View getView(int position, View convertView, ViewGroup parent){

    if(convertView==null){
        LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = layoutInflater.inflate(R.layout.fragment_membership, null, true);

    }

getResource何らかの理由でメソッドを作成したと思いますか? あなたはそれを呼び出すことはありません。

フラグメント レイアウトにフラグメント レイアウトのリストを保持させたくないと思います (再帰のため)

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

    return view;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ViewPagerからインスタンス化されたフラグメントにカスタムListViewをプログラムで実装する方法

分類Dev

カスタムフラグメント内にGoogleマップフラグメントをネストする

分類Dev

ネストされたループをラムダ式にリファクタリングする

分類Dev

(ネストされた)StackNavigator内にカスタムヘッダーアイコンを実装するにはどうすればよいですか?

分類Dev

ネストされたダイアログフラグメントでデータを渡す方法

分類Dev

カスタムクエリを使用したネストされたテンプレートフラグメント?

分類Dev

カスタム実装でSpringDataで構成されたエンティティマネージャー(ファクトリ)にアクセスする方法

分類Dev

フラグメントのカスタムダイアログに入力された情報を取得するにはどうすればよいですか?

分類Dev

ネストされたJSONをパンダデータフレームにフラット化する方法

分類Dev

リストビュー用のアダプターをフラグメントで実装するにはどうすればよいですか

分類Dev

ラムダプロダクションを使用してJava8でネストされたストリームをフィルタリングする方法

分類Dev

カスタムメソッドを使用してフィールドをネストされたオブジェクトにマッピングする

分類Dev

MainActivity に抽象アダプター クラスを実装する

分類Dev

Railsログからネストされたパラメーターをフィルタリングする方法

分類Dev

カーソルアダプターでオートコンプリートを実装する方法

分類Dev

ダイアログフラグメントとカスタムリストビューアダプタ間のインターフェイスの実装中にエラーが発生しました

分類Dev

反応性プログラミングにネストされた非同期コードを実装する方法?

分類Dev

ネストされた SQL ステートメントを使用して、カウントに影響を与えずにフィルタリングする

分類Dev

ソースファイルにネストされたクラスコンストラクタを実装する方法

分類Dev

Spring-Boot:カスタムネストされたアプリケーションプロパティを@ConfigurationPropertiesクラスにバインドする方法は?

分類Dev

gles2にandenginesurfacegesturedetectorアダプターを実装する方法は?

分類Dev

ネストされたフラグメントから親フラグメントへのデータの送信

分類Dev

タイムスタンプに指定されたカフカオフセットデータを取得する方法

分類Dev

フラグメントでカスタムビューを実行する方法

分類Dev

ネストされたテンプレートパラメータをフラット化する方法は?

分類Dev

パンダでネストされたリストをデータフレームに変換する方法

分類Dev

カスタムクラスに基づいてネストされたアコーディオングループを折りたたむ

分類Dev

editTextがフラグメントにフォーカスされたときにキーボードの上部に表示されるフッターコンポーネントを非表示にする方法は?

分類Dev

フィルタリングされたアイソトープアイテムにクラスを追加する

Related 関連記事

  1. 1

    ViewPagerからインスタンス化されたフラグメントにカスタムListViewをプログラムで実装する方法

  2. 2

    カスタムフラグメント内にGoogleマップフラグメントをネストする

  3. 3

    ネストされたループをラムダ式にリファクタリングする

  4. 4

    (ネストされた)StackNavigator内にカスタムヘッダーアイコンを実装するにはどうすればよいですか?

  5. 5

    ネストされたダイアログフラグメントでデータを渡す方法

  6. 6

    カスタムクエリを使用したネストされたテンプレートフラグメント?

  7. 7

    カスタム実装でSpringDataで構成されたエンティティマネージャー(ファクトリ)にアクセスする方法

  8. 8

    フラグメントのカスタムダイアログに入力された情報を取得するにはどうすればよいですか?

  9. 9

    ネストされたJSONをパンダデータフレームにフラット化する方法

  10. 10

    リストビュー用のアダプターをフラグメントで実装するにはどうすればよいですか

  11. 11

    ラムダプロダクションを使用してJava8でネストされたストリームをフィルタリングする方法

  12. 12

    カスタムメソッドを使用してフィールドをネストされたオブジェクトにマッピングする

  13. 13

    MainActivity に抽象アダプター クラスを実装する

  14. 14

    Railsログからネストされたパラメーターをフィルタリングする方法

  15. 15

    カーソルアダプターでオートコンプリートを実装する方法

  16. 16

    ダイアログフラグメントとカスタムリストビューアダプタ間のインターフェイスの実装中にエラーが発生しました

  17. 17

    反応性プログラミングにネストされた非同期コードを実装する方法?

  18. 18

    ネストされた SQL ステートメントを使用して、カウントに影響を与えずにフィルタリングする

  19. 19

    ソースファイルにネストされたクラスコンストラクタを実装する方法

  20. 20

    Spring-Boot:カスタムネストされたアプリケーションプロパティを@ConfigurationPropertiesクラスにバインドする方法は?

  21. 21

    gles2にandenginesurfacegesturedetectorアダプターを実装する方法は?

  22. 22

    ネストされたフラグメントから親フラグメントへのデータの送信

  23. 23

    タイムスタンプに指定されたカフカオフセットデータを取得する方法

  24. 24

    フラグメントでカスタムビューを実行する方法

  25. 25

    ネストされたテンプレートパラメータをフラット化する方法は?

  26. 26

    パンダでネストされたリストをデータフレームに変換する方法

  27. 27

    カスタムクラスに基づいてネストされたアコーディオングループを折りたたむ

  28. 28

    editTextがフラグメントにフォーカスされたときにキーボードの上部に表示されるフッターコンポーネントを非表示にする方法は?

  29. 29

    フィルタリングされたアイソトープアイテムにクラスを追加する

ホットタグ

アーカイブ