Veritabanımdaki verileri bir ListFragment içinde görüntülemeye çalışıyorum. AncakListFragment'ın ListView kendi ListAdapter kullanıyorum NullPointerException atar
package com.mysys.asistan;
import android.app.ListFragment;
import android.content.Context;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.TextView;
import com.mysys.asistan.database.Company;
public class CompanyListFragment extends ListFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new CompanyListAdapter(getActivity()));
}
private class CompanyListAdapter implements ListAdapter {
private final Context context;
private DatabaseHelper dbHelper;
public CompanyListAdapter(Context context) {
this.context = context;
this.dbHelper = new DatabaseHelper(context);
}
public int getCount() {
return dbHelper.getCompanyCount();
}
public Object getItem(int position) {
return dbHelper.getAllCompanies().get(position);
}
public long getItemId(int position) {
return (long) dbHelper.getAllCompanies().get(position).id;
}
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.company_list_item, parent, false);
Company company = (Company) getItem(position);
TextView nameView = (TextView) row.findViewById(R.id.CompanyListName);
TextView telephoneView = (TextView) row.findViewById(R.id.CompanyListTelephone);
TextView addressView = (TextView) row.findViewById(R.id.CompanyListAddress);
nameView.setText(company.name);
telephoneView.setText(company.telephone);
addressView.setText(company.address);
return null;
}
public int getItemViewType(int position) {
return IGNORE_ITEM_VIEW_TYPE;
}
public int getViewTypeCount() {
return 1;
}
public boolean hasStableIds() {
return true;
}
public boolean isEmpty() {
return getCount() == 0 ? true : false;
}
public void registerDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
public void unregisterDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
public boolean areAllItemsEnabled() {
return true;
}
public boolean isEnabled(int position) {
return true;
}
}
}
: Ben ListActivity kullandığınızda Bunu yapmak için, ben de aynı şekilde takip ettim, benim kendi adaptörü (adaptör benim eski projelerin birinde BaseAdapter genişleten bir sınıf çevirdim, tuhaf görünebilir) oluşturuldu Bu bir NullPointerException yol açar ve ben logCat içinde günlüklerinden bir şey çözemedim, hiçbir şey benim koduna ilişkin:
01-24 20:24:06.040: E/AndroidRuntime(8731): FATAL EXCEPTION: main
01-24 20:24:06.040: E/AndroidRuntime(8731): java.lang.NullPointerException
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.ListView.measureScrapChild(ListView.java:1181)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.ListView.measureHeightOfChildren(ListView.java:1264)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.ListView.onMeasure(ListView.java:1173)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:956)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.LinearLayout.onMeasure(LinearLayout.java:521)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.LinearLayout.measureVertical(LinearLayout.java:764)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
01-24 20:24:06.040: E/AndroidRuntime(8731): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2042)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.View.measure(View.java:10848)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewRoot.performTraversals(ViewRoot.java:941)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.view.ViewRoot.handleMessage(ViewRoot.java:2063)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.os.Handler.dispatchMessage(Handler.java:99)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.os.Looper.loop(Looper.java:132)
01-24 20:24:06.040: E/AndroidRuntime(8731): at android.app.ActivityThread.main(ActivityThread.java:4126)
01-24 20:24:06.040: E/AndroidRuntime(8731): at java.lang.reflect.Method.invokeNative(Native Method)
01-24 20:24:06.040: E/AndroidRuntime(8731): at java.lang.reflect.Method.invoke(Method.java:491)
01-24 20:24:06.040: E/AndroidRuntime(8731): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
01-24 20:24:06.040: E/AndroidRuntime(8731): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
01-24 20:24:06.040: E/AndroidRuntime(8731): at dalvik.system.NativeStart.main(Native Method)
ve bu parçasını içerir düzenidir:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment
android:id="@+id/fragment1"
android:name="com.mysys.asistan.CompanyListFragment"
android:layout_width="@dimen/company_listfragment_width"
android:layout_height="wrap_content" />
</LinearLayout>
Ve bu company_list_item.xml geçerli:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/CompanyListName"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:id="@+id/CompanyListAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:id="@+id/CompanyListTelephone"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Ben this soru bulundu, ancak çözüm bence benim sorunla ilgili bir şey değildir. Yardımlarınız için şimdiden teşekkür ederiz.
Ah, benim kötüyüm, kod eski projelerimden bir kopyala yapıştır olduğu için onu özlemişimdir. Bu soru mu kalmalı yoksa silmem gerekir mi? Geri dönüştürülmüş görünüm ve sahiplere ilişkin ipucu için teşekkürler. – Utku
Evet. Bu soruyu sil. Bu gönderi şimdi herhangi bir amaç için sunucu değil. :) – manjusg
Lütfen kalmasına izin verin, ilk "measureScrapChild nullpointerexception" dır ve yanlış bir geri dönüş çocuğuna bağlı olduğunu gösterir. –