להגיב ל: הוספת כמה סוגי טקסטים על כפתור אחד

  • חני פולק

    הייטק
    חברה
    27/01/2020 ב8:24 am

    כמו שכתבת את צריכה Adapter. ה-Adapter הוא כמו גשר בין התצוגה לתוכן המוכל בו. הוא אחראי לייצר תצוגה מותאמת אישית עבור כל פריט. יש לו ארועים משלו, תוכן משלו וכו וכו. לאדפטר את מכילה Layout מסויים. את יכולה אפילו לכל שורה לייאוט שונה, זה את עושה בפונקציה: getView. שם את מגדירה מי הlayout שלו, מה הוא מכיל, איזה טקסטים וכו וכו… ממש כמו activity. מצרפת דוגמא של basicAdapter: קוד ב activity private ListView list;
    private final ArrayList pairs = new ArrayList();
    private Activity context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    pairs.add(new RestaurantsDetails(“McDonald’s”, “mcd”));
    pairs.add(new RestaurantsDetails(“Subway”, “mcd”));
    pairs.add(new RestaurantsDetails(“Pizza Hut”, “mcd”));
    pairs.add(new RestaurantsDetails(“Burger King”, “mcd”));
    list = (ListView) findViewById(R.id.listview);
    AdapterViewCustom adapter = new AdapterViewCustom(this, pairs);
    list.setAdapter(adapter);
    list.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(android.widget.AdapterView parent,
    View view, int position, long id) {
    Toast.makeText(getApplicationContext(),
    pairs.get(position).name, Toast.LENGTH_LONG).show();
    }
    });
    } מחלקת dataLayer public class RestaurantsDetails {
    public String name;
    public String img;
    public RestaurantsDetails(String name, String img) {
    this.name = name;
    this.img = img;
    }
    } מחלקת ה adapter public class AdapterViewCustom extends BaseAdapter {
    private Activity context_1;
    private ArrayList
    pairs;
    public AdapterViewCustom(Activity context,
    ArrayList
    pairs) {
    context_1 = context;
    this.pairs = pairs;
    }
    @Override
    public int getCount() {
    return pairs.size();
    }
    @Override
    public Object getItem(int position) {
    return null;
    }
    @Override
    public long getItemId(int position) {
    return 0;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder viewHolder = null;
    if (convertView == null) {
    convertView = LayoutInflater.from(context_1).inflate(
    R.layout.custom_row, null);
    viewHolder = new ViewHolder();
    viewHolder.img = (ImageView) convertView
    .findViewById(R.id.log_img);
    viewHolder.txt = (TextView) convertView
    .findViewById(R.id.tv_view);
    /**
    * At very first time when the List View row Item control’s
    * instance is created it will be store in the convertView as a
    * ViewHolder Class object for the reusability purpose
    **/
    convertView.setTag(viewHolder);
    } else {
    /**
    * Once the instance of the row item’s control it will use from
    * already created controls which are stored in convertView as a
    * ViewHolder Instance
    * */
    viewHolder = (ViewHolder) convertView.getTag();
    }
    viewHolder.txt.setText(pairs.get(position).name);
    int id = context_1.getResources().getIdentifier(
    pairs.get(position).img, “drawable”,
    context_1.getPackageName());
    viewHolder.img.setImageResource(id);
    return convertView;
    }
    public class ViewHolder {
    public final ImageView img;
    public final TextView txt;
    }
    } כדאי שתקראי על הנושא קצת באינטרנט ותחליטי איזה סוג של אדפטר מתאים לך בדיוק.

מעוניינת בפרסום

חשוב: לא כל פרסום מאושר, נא לפרט בדיוק במה מדובר

ניתן לפנות גם במייל ל: [email protected]

מה את מחפשת?

מילות מפתח פופולריות לפי תחומים

ניתן לחפש גם מילות מפתח , תפקידים וכישרון מיוחד שאינם מופיעים ברשימות - "נהגת", "ציור בחול" וכדומה.

דילוג לתוכן