הוספת כמה סוגי טקסטים על כפתור אחד
קדם ‹ Forums ‹ הייטק ‹ Mobile Development ‹ הוספת כמה סוגי טקסטים על כפתור אחד
-
הוספת כמה סוגי טקסטים על כפתור אחד
פורסם ע"י chaya1724 חברה on 26/01/2020 ב7:43 pmכיצד אפשר להוסיף לתצוגה של כפתור שיהיה כמה סוגי טקסטים וכן כמה תמונות – אייקונים
chaya1724 הגיבה לפני 4 שנים, 9 חודשים 3 חברות · 10 תגובות -
10 תגובות
-
אם את מתכוונת שתוכלי להחליף את התמונה/ הטקסט של הכפתור אז אפשר באמצעות:
Button btn = findViewById(R.id.btnId);
btn.setText(“the text you want”) ;
בשביל תמונה:
btn.setImageResource(…)אם התכוונת לכך שתוכלי ל”אחד ” כמה תמונות להיות על כפתור אחד בו זמנית אז לדעתי תערכי את התמונות בתוכנה גרפית ותתייחסי לזה כתמונה אחת. מקווה שהועלתי…
-
אם התכוונת שיהיו כמה טקסטים עם סוגים שונים של פונטים, תעשי Layout מסויים, תעצבי אותו כמו כפתור ותחילי עליו ארוע קליק
-
תודה רבה על תשובתך אבל השאלה שלי ממשיכה מכיוון שהיא יותר מוכבת – אולי תוכלי לעזר לי או לתת לי כיוון מה כדאי לי לעשות אם אני צריכה
item שכל listView להראות הוא כפתור או משהו אחר הניתן ללחיצה והוא יראה כבר – (שעליו יהיה רשום) נתונים בטקסטים של גדלים שונים וגם אייקונים ליד הטקסטים ובעיקר מה שאני צריכה שבכל כפתור יהיה לי תוכן אחר שבא ממערכים שונים או מאובייקט כלשהו. אני התחלתי לעשות את זה אם אדאפטר שמכניס לי את כל הנתונים של המערך בכפתורים אבל אני מצליחה רק טקסט אחד ואני בעצם צריכה משהו הרבה יותר מורכב האם אני באמת יעשה את זה קודם בלייאות כלשהו ואתו אני אציג כל פעם ברשימה אבל אז אני צריכה שיהיה כל פעם טקסט אחר ב textView ים אשמח לכל מידע בעניין שיכול לעזר לי תודה רבה מראש על העינותכן -
כמו שכתבת את צריכה Adapter. ה-Adapter הוא כמו גשר בין התצוגה לתוכן המוכל בו. הוא אחראי לייצר תצוגה מותאמת אישית עבור כל פריט. יש לו ארועים משלו, תוכן משלו וכו וכו. לאדפטר את מכילה Layout מסויים. את יכולה אפילו לכל שורה לייאוט שונה, זה את עושה בפונקציה: getView. שם את מגדירה מי הlayout שלו, מה הוא מכיל, איזה טקסטים וכו וכו… ממש כמו activity. מצרפת דוגמא של basicAdapter: קוד ב activity private ListView list;
private final ArrayListpairs = 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 ArrayListpairs;
public AdapterViewCustom(Activity context,
ArrayListpairs) {
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;
}
} כדאי שתקראי על הנושא קצת באינטרנט ותחליטי איזה סוג של אדפטר מתאים לך בדיוק. -
חני תודה רבה על תשובתך המהירה והברורה
כעת נתקעתי בעוד בעיה ואולי תוכלי לעזר לי מקווה שאני לא יור מידי מפריעה
אחד הנתונים שלי הוא מסוג date ואני גם רוצה להראות את זה בtextView
dateF.setText(currentForm.getDate()); Cannot resolve method ‘setText(java.util.Date)’
והוא צועק לי שהוא לא יכול האם את יודעת איך אפשר לסדר את זה? -
צודקת ב100% מעכשיו אני אפתח שאלה חדשה בשביל שזה יעזר באמת לכולם
Log in to reply.