جلسه پانزدهم بخش ۲ لیست custom پیچیده که برا من کنده
سه شنبه, ۲ ارديبهشت ۱۳۹۹، ۰۵:۴۵ ب.ظ
package ir.ben.frog; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.Adapter; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; public class customlist extends AppCompatActivity { ListView lvv; ArrayList people; personadapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_customlist); lvv=findViewById(R.id.listvvv); people=new ArrayList<>(); people.add(new person("hgfadg","2342342",R.drawable.profile1)); people.add(new person("ababab","26666662",R.drawable.profile2)); fake(4); people.add(new person("xthththth","235555552",R.drawable.profile3)); people.add(new person("xzxzxzx","99999999",R.drawable.profile5)); fake(3); people.add(new person("bgbgbgb","66666777",R.drawable.profile6)); people.add(new person("rfrfrf","4444444",R.drawable.profile7)); people.add(new person("qwqwqw","77778888",R.drawable.profile4)); adapter=new personadapter(this,people); lvv.setAdapter(adapter); } private void fake(int i) { for(;i>0;i--) people.add(new person("fake"+i,"0898"+i,0)); } }
\\personadapter.java public class personadapter extends ArrayAdapter { private List<person> contacts; public personadapter(@NonNull Context context, List<person> connames) { super(context, R.layout.newlayout, connames); this.contacts=connames; } @NonNull @Override\\\ این جا می نویسی گت ویو کلیک می کنی public View getView(int position, @Nullable View convertview, @NonNull ViewGroup parent) { person nev=contacts.get(position); vholder vh; if(convertview==null) { LayoutInflater infl = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertview = infl.inflate(R.layout.newlayout, parent, false); vh=new vholder(); vh.impr=convertview.findViewById(R.id.pic); vh.namnam=convertview.findViewById(R.id.name); vh.numnum=convertview.findViewById(R.id.phone); vh.iconsms=convertview.findViewById(R.id.smsi); vh.iconcall=convertview.findViewById(R.id.calli); convertview.setTag(vh); } else { vh= (vholder) convertview.getTag(); } vh.fill(nev); return convertview; } private class vholder implements View.OnClickListener { public ImageView impr; public TextView numnum; public TextView namnam; public ImageView iconsms,iconcall; public void fill(person nev){ impr.setImageResource(nev.getId()); numnum.setText(nev.getNumber()); namnam.setText(nev.getName()); iconcall.setTag(nev.getNumber()); iconsms.setTag(nev.getNumber()); iconsms.setOnClickListener(this); iconcall.setOnClickListener(this); } @Override public void onClick(View v) { Intent intent=new Intent(Intent.ACTION_VIEW); String number= (String) v.getTag(); if(v==iconcall) { intent.setData(Uri.parse("tel:"+number)); getContext().startActivity(intent); } else if(v==iconsms) { intent.setData(Uri.parse("sms:"+number)); getContext().startActivity(intent); } } } }
\\person.java +I didnt write setters for it! package ir.ben.frog; public class person { private String name; private String number; private int id; public person(String name,String number,int id){ this.name=name; this.number=number; this.id=id; } //i skipped the setters public String getName(){return name;} public String getNumber(){return number;} public int getId(){return id;} public String toString(){return name;} }
بیا اینم setterهاش هیچ فرقی نکرد
package ir.ben.frog; public class person { private String name; private String number; private int id; public person(String name,String number,int id){ this.name=name; this.number=number; this.id=id; } //i skipped the setters public void setName(String name) { this.name = name; } public void setNumber(String number) { this.number = number; } public void setId(int id) { this.id = id; } public String getName(){return name;} public String getNumber(){return number;} public int getId(){return id;} public String toString(){return name;} }
۹۹/۰۲/۰۲