마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

생성된 리사이클러뷰 getitemcount로 가져온 총개수를 변수로 저장하는 거 질문있습니다.

0 추천
public class MemoAdapter extends RecyclerView.Adapter<MemoAdapter.ViewHolder>{

    Context context;
    List<Memo> datas;
    View view;

    MemoAdapter memoAdapter;

    public MemoAdapter(Context context, List<Memo> datas) {
        this.context = context;
        this.datas = datas;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.memo, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        holder.tv_content.setText(datas.get(position).getMemo());
        holder.tv_title.setText(datas.get(position).getTitle());
        for(int i = 0; i< datas.size(); i++) {
            Log.i("MAIN", "0--------------------------------------" + datas.get(i).getMemo());
        }
        holder.position = position;
        holder.list_month.setText(datas.get(position).getMonth());
        holder.list_day.setText(datas.get(position).getDay());

        //int a = datas.size();

    }

    @Override
    public int getItemCount() {
        return datas.size();

    }

 

int test1;
MemoAdapter memoAdapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view =  inflater.inflate(R.layout.third,container,false);
    ListView listView=(ListView)view.findViewById(R.id.settinglist);
    TextView textView=(TextView)view.findViewById(R.id.test) ;

    test1 = memoAdapter.getItemCount();
    textView.setText(test1);
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.paparazzi.paparazzi_planer, PID: 4527
                  java.lang.NullPointerException: Attempt to invoke virtual method 'int com.example.paparazzi.paparazzi_planer.Memo.MemoAdapter.getItemCount()' on a null object reference
                      at com.example.paparazzi.paparazzi_planer.SettingFragment.onCreateView(SettingFragment.java:43)
                      at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
                      at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
                      at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
                      at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
                      at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
                      at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
                      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
                      at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6119)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Application terminated.

생성된 리사이클러뷰를 변수에 저장시켜서

다른 액티비티 textview에 settext를 하고싶은데 오류가 뜹니다.

어떻게 해야하나요?

익명사용자 님이 2018년 6월 4일 질문

2개의 답변

0 추천
 
채택된 답변
오마나... 총체적 난국이네요....

1. 지금 사용하는 viewholder의 멤버변수 memoAdapter 는 null

2 .MemoAdapter의 getItemCount() 에서 datas nullable 처리 누락.

 

위에 두개가 해결되더라도,

3. textView.setText(Int) 이건 Resources 참조 함수로 에러

textView.setText(text1 + ""); 이렇게라도 바꿔야되겠네요.
uno (3,820 포인트) 님이 2018년 6월 4일 답변
해결했습니다 ㅠㅠ

제가 int 변수를 가져오는건 성공했는데

형변환을 안해서 오류가 떳네요..

textview.setText(Integer.toString(변수))로 하니까 해결됬습니다.

부족한 제 코드를 봐주셔서 감사합니다..
0 추천
java.lang.NullPointerException: 가 무엇인지 검색 해보시고

코드는 아래 처럼 고치세요

public int getItemCount() {
    if (datas == null) {
        return 0;
    }

    return datas.size();
}
aucd29 (218,390 포인트) 님이 2018년 6월 4일 답변
변수로 가져와서 출력하는 것 해결했습니다 ㅠㅠ

네 감사합니다!! 알려주신대로 코드 수정하겠습니다.
...