PDA

View Full Version : ایجاد کردن adapter خصوصی



bijar985
پنج شنبه 18 مرداد 1397, 01:00 صبح
سلام دوستان لطف کنید منو یه راهمنمایی کنید ممنون میشم

من میخام یک adapterخصوصی درست کنم ولی احساس میکنم adapterدر اکتویتی فراخوانی نمی شود نتیجه null میدهد و اررو میده میشه یه کمکم کنید

این کلاس adapter
[JAVA]
package com.example.payam.myapplication;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;
public class CountactAdapter extends ArrayAdapter{
Context context;
private List<Mycontact> countacts;
public CountactAdapter(@NonNull Context context, @NonNull List<Mycontact> countacts) {
super(context, R.layout.activity_custom_list, countacts);
this.countacts = countacts;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
Mycontact item = countacts.get(position);
@SuppressLint("ServiceCast") LayoutInflater inflater = (LayoutInflater)
getContext().getSystemService(Context.LAYOUT_INFLA TER_SERVICE);
View view = inflater.inflate(R.layout.activity_custom_list,par ent,false);
ImageView pimg = view.findViewById(R.id.Mycountact);
TextView textView2 = view.findViewById(R.id.textView2);
TextView textView3 = view.findViewById(R.id.textView3);
if(item.getid() != 0) {
pimg.setImageResource(item.getid());
}
pimg.setImageResource(item.getid());
textView2.setText(item.getName());
textView3.setText(item.getPhonenumber());
return view;
}

}[/JAVA
اینم کلاس activity
]package com.example.payam.myapplication;import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;

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

public class CustomListActivity extends AppCompatActivity {
List<Mycontact> countacts;
ListView list;
@SuppressLint("ResourceType")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_list);
list = findViewById(R.id.list_view);
countacts = new ArrayList<>();
preprData();
refreshDisplay();
}
private void preprData() {
countacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.paiam));
countacts.add(new Mycontact("alireza","09129280551", R.drawable.ali));
countacts.add(new Mycontact("mohmad","09129280551", R.drawable.asfds));
// mycontacts.add(new Mycontact("sahary","09129280551", R.drawable.ghjh));
// mycontacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.hjkhkiuui));
// mycontacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.iron));
// mycontacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.mohamad));
// mycontacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.opiop));
// mycontacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.poya));
// mycontacts.add(new Mycontact("paiam sahari","09129280551", R.drawable.reza));
}
private void refreshDisplay() {
CountactAdapter adapter = new CountactAdapter(this,countacts);
list.setAdapter(adapter);
}
}
اررورشم همین
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.payam.myapplication/com.example.payam.myapplication.CustomListActivity }: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget. ListAdapter)' on a null object reference

bijar985
پنج شنبه 18 مرداد 1397, 12:13 عصر
دوستان میشعه راهنمایی کنید

farhad_shiri_ex
پنج شنبه 18 مرداد 1397, 14:25 عصر
دوستان میشعه راهنمایی کنید

لطفا کدهای برنامه را درون تگ های BB code مناسب قرار بدید تا بهتر قابل نمایش باشه!
در دستور فوق list.setAdapter(adapter); کنترل list را قبلش باید مقداردهی کنید مثلا findViewByID(R.id.list) پیغام خطا مبنی بر شناسایی نشدن کنترل لیست هست