Listemi doldurmaya çalışıyorum Özel oluşturduğum bir dizi bağdaştırıcısıyla oluşturdum. İstediğim sonuç, sol tarafta bir görüntü ve sağdaki iki etiketin olması.Android dolgu listesiGörüntüle ArrayAdapter ile
ListView'i görüntülemesi gereken bölüme ulaştığımda, uygulama çöküyor ancak nedenini gerçekten bulamıyorum. Hata, java.lang.IllegalStateException: System services not available to Activities before onCreate()
. İşte
parçası:
public class inboxCellElement {
private String name = "", message = "";
private int imgId = 0;
public inboxCellElement(int imgId, String name, String message){
this.imgId = imgId;
this.name = name;
this.message = message;
}
public int getImgId() { return imgId; }
public String getName() { return name; }
public String getMessage() { return message; }
}
özel Adaptörü:
public class inboxCellAdapter extends ArrayAdapter {
inboxCellElement[] elts;
NavDrawer navDrawer;
// constructor
public inboxCellAdapter(Context context, int resource, Object[] objects, NavDrawer navDrawer) {
super(context, resource, objects);
elts = (inboxCellElement[]) objects;
this.navDrawer = navDrawer;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyHolder holder = null;
LayoutInflater inflater = new NavDrawer().getLayoutInflater();
if (convertView == null) {
convertView = inflater.inflate(R.layout.inbox_cell_layout, null, false);
holder = new MyHolder(convertView);
convertView.setTag(holder);
}
else {
holder = (MyHolder) convertView.getTag();
}
holder.getUpperText().setText(elts[position].getName());
holder.getLowerText().setText(elts[position].getMessage());
holder.getImage().setImageResource(elts[position].getImgId());
return convertView;
}
private class MyHolder {
private View row;
private TextView upperText = null, lowerText = null;
private ImageView img = null;
public MyHolder(View row) {
this.row = row;
}
public TextView getUpperText() {
if (this.upperText == null) {
this.upperText = (TextView) navDrawer.findViewById(R.id.inboxCellName);
}
return this.upperText;
}
public TextView getLowerText() {
if (this.lowerText == null) {
this.lowerText = (TextView) navDrawer.findViewById(R.id.inboxCellMessage);
}
return this.lowerText;
}
public ImageView getImage() {
if (this.img == null) {
this.img = (ImageView) navDrawer.findViewById(R.id.inboxCellImg);
}
return this.img;
}
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getActivity().setTitle("Inbox");
myView = inflater.inflate(R.layout.inbox_layout, container, false);
ListView list = (ListView) myView.findViewById(R.id.listViewMyAccount);
inboxCellElement[] elts = new inboxCellElement[] {new inboxCellElement(R.drawable.ic_menu_camera, "Val", "Hi !")};
list.setAdapter(new inboxCellAdapter(new NavDrawer(), R.layout.inbox_cell_layout, elts, (NavDrawer) getActivity()));
return myView;
}
verileri içeren nesne ListView geçmek
Görünüşe göre Hata, birkaç navDrawer.findViewById(...)
çağrıdan gelir, ancak nasıl düzeltileceğini bilmiyorum. Herkes bu hatanın gerçekleştiğini onaylayabilir mi, neden ve düzeltmeme yardım etsin? Teşekkür
DÜZENLEME: stacktrace ekleme
--------- kazasında başlangıcı
Eğer yorumlarınNavDrawer
dediği gibi Sen (
context
sağlamak için etkinlik'ın yapıcı kullanamaz
04-12 14:32:58.816 2128-2128/t2g.com.travel2gather E/AndroidRuntime: FATAL EXCEPTION: main
Process: t2g.com.travel2gather, PID: 2128
java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.Activity.getSystemService(Activity.java:5253)
at android.view.LayoutInflater.from(LayoutInflater.java:229)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:178)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:137)
at t2g.com.travel2gather.adapters.inboxCellAdapter.<init>(inboxCellAdapter.java:0)
at t2g.com.travel2gather.inboxFragment.onCreateView(inboxFragment.java:30)
at android.app.Fragment.performCreateView(Fragment.java:2220)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:973)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148)
at android.app.BackStackRecord.run(BackStackRecord.java:793)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:482)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
tam yığın izleme gönderebilir? –
Gönderenin sonuna ekledim – Dliix
Herhangi bir yerden getSystemService (Context.CONNECTIVITY_SERVICE); '? –