0

我的ViewPager不顯示任何內容。我不知道爲什麼它是空的。你有想法解決這個問題嗎?這裏是我的代碼:使用PagerAdapter的ViewPager不顯示任何內容

CustomPageAdapter.java

public class CustomPageAdapter extends PagerAdapter implements ValueEventListener { 

Context mContext; 
private Context context; 
private HashMap<String, Araba> arabalar; 
private DatabaseReference databaseReference; 
private String userId; 
private LayoutInflater inflater; 
private List<String> arabaPlakalari; 


public CustomPageAdapter(@NonNull Context context, 
        @NonNull List<String> arabaPlakalar, 
        final DatabaseReference databaseReference, 
        final String userId) { 

    this.context = context; 
    this.arabaPlakalari = arabaPlakalar; 
    arabalar = new HashMap<>(); 
    this.databaseReference = databaseReference; 
    this.userId = userId; 
    databaseReference.child("Arabalar") 
      .child(userId) 
      .addChildEventListener(new ChildEventListener() { 
       @Override 
       public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
        String plaka = dataSnapshot.getKey(); 
        if(arabalar.get(plaka) == null){ 
         databaseReference.child("Arabalar") 
           .child(userId) 
           .child(plaka).addValueEventListener(CustomPageAdapter.this); 
        } 

        notifyDataSetChanged(); 
       } 

       @Override 
       public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

       } 

       @Override 
       public void onChildRemoved(DataSnapshot dataSnapshot) { 
        String plaka = dataSnapshot.getKey(); 
        if(arabalar.get(plaka) != null){ 
         arabaPlakalari.remove(plaka); 
         arabalar.remove(plaka); 
         databaseReference.child("Arabalar") 
           .child(userId) 
           .child(plaka) 
           .removeEventListener(CustomPageAdapter.this); 
        } 

        notifyDataSetChanged(); 
       } 

       @Override 
       public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 
} 



@Override 
public Object instantiateItem(ViewGroup container, int position) 
{ 
    String plaka = arabaPlakalari.get(position); 
    Araba arabaBilgisi = arabalar.get(plaka); 
    TextView muayeneTarihiTextView; 
    TextView emisyonTarihiTextView; 
    TextView sigortaTarihiTextView; 
    TextView kaskoTarihiTextView; 

    View viewLayout = LayoutInflater.from(context).inflate(R.layout.list_item_custom, container, false); 
    muayeneTarihiTextView = (TextView) viewLayout.findViewById(R.id.muayeneTarihiTextView); 
    kaskoTarihiTextView = (TextView) viewLayout.findViewById(R.id.kaskoTarihiTextView); 
    emisyonTarihiTextView = (TextView) viewLayout.findViewById(R.id.emisyonTarihiTextView); 
    sigortaTarihiTextView = (TextView) viewLayout.findViewById(R.id.sigortaTarihiTextView); 

    muayeneTarihiTextView.setText(arabaBilgisi.getEditTextEmisyonTarihi()); 
    kaskoTarihiTextView.setText(arabaBilgisi.getEditTextKaskoTarihi()); 
    sigortaTarihiTextView.setText(arabaBilgisi.getEditTextSigortaTarihi()); 
    emisyonTarihiTextView.setText(arabaBilgisi.getEditTextEmisyonTarihi()); 
    container.addView(viewLayout); 
    return viewLayout; 
} 



@Override 
public int getCount() { 
    return arabalar.size(); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return false; 
} 

@Override 
public void onDataChange(DataSnapshot dataSnapshot) 
{ 
    Araba araba = dataSnapshot.getValue(Araba.class); 
    String plaka = dataSnapshot.getKey(); 
    araba.setEditTextPlaka(plaka); 
    arabalar.put(plaka, araba); 
    if(!arabaPlakalari.contains(plaka)){ 
     arabaPlakalari.add(plaka); 
    } 

    notifyDataSetChanged(); 
} 


@Override 
public void onCancelled(DatabaseError databaseError) { 

} 

YaklasanlarFragment.java(它的片段)

public class YaklasanlarFragment extends Fragment { 


String userId; 
FirebaseAuth firebaseAuth; 
DatabaseReference dref; 
ListView listview; 
ArrayList<String> list=new ArrayList<>(); 
public ViewPager viewPager = null; 
PagerAdapter adapter; 
public YaklasanlarFragment(){} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view= inflater.inflate(R.layout.activity_yaklasanlar_fragment, container, false); 
    firebaseAuth=FirebaseAuth.getInstance(); 
    userId=firebaseAuth.getCurrentUser().getUid().toString(); 
    dref = FirebaseDatabase.getInstance().getReference(); 
    viewPager = (ViewPager) view.findViewById(R.id.viewPager); 
    adapter=new CustomPageAdapter(getActivity(), new ArrayList<String>(), dref, userId); 
    viewPager.setAdapter(adapter); 
    return view; 
} 

}

yaklasanlar_fragment.xml

<android.support.v4.view.ViewPager 
    android:id="@+id/viewPager" 
    android:layout_width="wrap_content" 
    android:layout_height="545dp" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true"> 
</android.support.v4.view.ViewPager> 

list_item_custom.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/activity_yaklasanlar_fragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.yunus.ototakip.YaklasanlarFragment"> 


<android.support.v4.view.ViewPager 
    android:id="@+id/viewPager" 
    android:layout_width="wrap_content" 
    android:layout_height="545dp" 
    android:layout_alignParentStart="true" 
    android:layout_alignTop="@+id/linearLayout" 
    android:layout_alignParentBottom="true"> 
</android.support.v4.view.ViewPager> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:layout_marginTop="49dp" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:id="@+id/linearLayout"> 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="horizontal" > 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@color/divide1"> 

      <TextView 
       android:id="@+id/muayeneTarihiTextView" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:gravity="center" 
       android:text="Muayene Tarihi bitimine" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_marginBottom="75dp" 
       android:gravity="center" 
       android:text="GÜN KALDI" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/muayeneFark" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="230dp" 
       android:text="0" 
       android:textAlignment="center" 
       android:textColor="@color/beyaz" 
       android:textSize="36sp" 
       android:textStyle="bold" /> 
     </RelativeLayout> 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@color/divide2"> 

      <TextView 
       android:id="@+id/sigortaTarihiTextView" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:gravity="center" 
       android:text="Sigorta Tarihi bitimine" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/sigortaFark" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_marginBottom="75dp" 
       android:gravity="center" 
       android:text="GÜN KALDI" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView8" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="230dp" 
       android:text="0" 
       android:textAlignment="center" 
       android:textColor="@color/beyaz" 
       android:textSize="36sp" 
       android:textStyle="bold" /> 
     </RelativeLayout> 
    </LinearLayout> 


    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="horizontal" > 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@color/divide1"> 

      <TextView 
       android:id="@+id/kaskoTarihiTextView" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:gravity="center" 
       android:text="Kasko Tarihi bitimine" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView10" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_marginBottom="75dp" 
       android:gravity="center" 
       android:text="GÜN KALDI" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/kaskoFark" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="230dp" 
       android:text="0" 
       android:textAlignment="center" 
       android:textColor="@color/beyaz" 
       android:textSize="36sp" 
       android:textStyle="bold" /> 
     </RelativeLayout> 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@color/divide3"> 

      <TextView 
       android:id="@+id/emisyonTarihiTextView" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:gravity="center" 
       android:text="Emisyon Değişim Tarihine" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/textView13" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_marginBottom="75dp" 
       android:gravity="center" 
       android:text="GÜN KALDI" 
       android:textColor="@color/beyaz" 
       android:textSize="17sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/emisyonFark" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="230dp" 
       android:text="0" 
       android:textAlignment="center" 
       android:textColor="@color/beyaz" 
       android:textSize="36sp" 
       android:textStyle="bold" /> 
     </RelativeLayout> 
    </LinearLayout> 

</LinearLayout> 

回答

0

問題是isViewFromObject方法。我忘記寫在方法裏面。如果你要使用ViewPager,你還必須添加destroyItem()方法。

@Override 
public boolean isViewFromObject(View view, Object object) 
{ 
    return view==object; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) 
    { 
     ((ViewPager) container).removeView((View) object); 
    }