تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 8
موضوعها: 3
تاریخ عضویت: آذر ۱۳۹۴
اعتبار:
1
سپاس ها 0
سپاس شده 4 بار در 2 ارسال
حالت من: هیچ کدام
۱۳۹۴/۰۹/۲۹, ۰۲:۴۲ ق.ظ
(آخرین تغییر در ارسال: ۱۳۹۴/۰۹/۲۹, ۱۰:۵۱ ق.ظ توسط admin.)
سلام من از کد لیست علاقه مندی خود سایت در برنامه ام استفاده کردم حالا می خوام فونت لیست ویو ها رو تغییر بدم نمیشه ممکن هست کمکم کنید:
کلید 2259
فکر کنم باید اینجا تغیرات بدم ولی هرکاری می کنم ارور میده
کد: ;(adapter = new ArrayAdapter<String>(this, R.layout.list_item_favorites, R.id.favorites_textView, Favorites_strings
;(lv.setAdapter(adapter
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 2,933
موضوعها: 191
تاریخ عضویت: تير ۱۳۹۱
اعتبار:
126
سپاس ها 1688
سپاس شده 3507 بار در 2023 ارسال
حالت من:
سلام.
در این موارد، باید کد مربوط به Adapter سازنده item های ListView را بیابیم و سپس در بخشی از آن که TextView (یا TextView های) مربوط به هر item کدنویسی شده است، کدهای مربوط به تغییر فونت را برای TextView بنویسیم.
کد Adapter در کلیدی که ذکر کردید :
کد پیاچپی: private class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, int resource, int textViewResourceId, String[] strings) { super(context, resource, textViewResourceId, strings); // TODO Auto-generated constructor stub } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View row = inflater.inflate(R.layout.list_item_subjects, parent, false); String[] items = Subjects; TextView tv = (TextView) row.findViewById(R.id.textView1); tv.setText(items[position]);
return row; } }
که بخش مربوط به TextView در آن قابل تشخیص می باشد :
کد پیاچپی: TextView tv = (TextView) row.findViewById(R.id.textView1); tv.setText(items[position]);
کد تعیین فونت برای TextView در کلید زیر ذکر شده است (آن را برای کد بالا به کار ببرید) :
کلید شماره 834
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 8
موضوعها: 3
تاریخ عضویت: آذر ۱۳۹۴
اعتبار:
1
سپاس ها 0
سپاس شده 4 بار در 2 ارسال
حالت من: هیچ کدام
ببخشید منظورتون اینه که یک کلاس با نام MyAdapter درست کنم و این کد رو توش وارد کنم بعد توی اکتیویتی یک شی از این کلاس تعریف کنم و بعد پرش کنم
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 2,933
موضوعها: 191
تاریخ عضویت: تير ۱۳۹۱
اعتبار:
126
سپاس ها 1688
سپاس شده 3507 بار در 2023 ارسال
حالت من:
۱۳۹۴/۰۹/۳۰, ۰۹:۳۵ ق.ظ
(آخرین تغییر در ارسال: ۱۳۹۴/۰۹/۳۰, ۰۹:۳۵ ق.ظ توسط admin.)
(۱۳۹۴/۰۹/۳۰, ۱۲:۱۹ ق.ظ)vid4259 نوشته: ببخشید منظورتون اینه که یک کلاس با نام MyAdapter درست کنم و این کد رو توش وارد کنم بعد توی اکتیویتی یک شی از این کلاس تعریف کنم و بعد پرش کنم
خیر، در کلیدی که ذکر کردید، کلاس MyAdapter کدنویسی شده است (یک Adapter است که item های ListView را می سازد). بنده تنها نشان دادم که TextView (مربوط به ساختار item ها) در کجا تعریف شده است و باید کدهای تعیین فونت را به آن اضافه کنید.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 8
موضوعها: 3
تاریخ عضویت: آذر ۱۳۹۴
اعتبار:
1
سپاس ها 0
سپاس شده 4 بار در 2 ارسال
حالت من: هیچ کدام
۱۳۹۴/۱۰/۰۲, ۰۲:۵۰ ب.ظ
(آخرین تغییر در ارسال: ۱۳۹۴/۱۰/۰۳, ۰۳:۰۱ ب.ظ توسط admin.)
ببخشید مشکل من همین هست که من خودم که کلاس ListViewAdapter دارم لیست ویو ره به روش خودم پر می کنم کد کلاس هم اینه
کد پیاچپی: package bb.vahid.ghamri;
import java.util.ArrayList; import java.util.List; import java.util.Locale;
import android.content.Context; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView;
public class ListViewAdapter extends BaseAdapter {
Context mContext; LayoutInflater inflater; private List<ClassGetData> ClassGetData = null; private ArrayList<ClassGetData> arraylist; //برای اینکه �?ونت رو از اکتیوتی مربوطه بگیره Typeface tf;
public ListViewAdapter(Context context, List<ClassGetData> ClassGetData ,String FONT ) { mContext = context; this.ClassGetData = ClassGetData; inflater = LayoutInflater.from(mContext); this.arraylist = new ArrayList<ClassGetData>(); this.arraylist.addAll(ClassGetData); //از اکتیویتی مربوطه میگیره this.tf = Typeface.createFromAsset(context.getAssets(), FONT); }
public class ViewHolder {
TextView onvantamrin; ImageView pci; }
@Override public int getCount() { return ClassGetData.size(); }
@Override public ClassGetData getItem(int position) { return ClassGetData.get(position); }
@Override public long getItemId(int position) { return position; }
@Override public View getView(final int position, View view, ViewGroup parent) { final ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = inflater.inflate(R.layout.row_layout, null); holder.onvantamrin = (TextView) view.findViewById(R.id.population); //ست با تکست باکسی که برای نمایش holder.onvantamrin.setTypeface(tf); holder.pci = (ImageView) view.findViewById(R.id.flag); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); }
holder.onvantamrin.setText(ClassGetData.get(position).getonvantamrin()); holder.pci.setImageResource(ClassGetData.get(position).getpicnamad()); return view; }
// public void filter(String charText) { charText = charText.toLowerCase(Locale.getDefault()); ClassGetData.clear(); if (charText.length() == 0) { ClassGetData.addAll(arraylist); } else { for (ClassGetData wp: arraylist) { if (wp.getonvantamrin().toLowerCase(Locale.getDefault()).contains(charText)) { ClassGetData.add(wp); } } } notifyDataSetChanged(); } }
در حالی که من در کد هام از این بخشی که شما گفتین استفاده نکردم
و در اکتیوتی علاقه مندی هم این کد هست
کد پیاچپی: public class AFavorites extends Activity {
TextView TextViewonvan; EditText search; EditText editTextSearch; TextView textviewonvanehdialog; TextView textviwedialogmessag; ImageButton imagebutton; public int Subjects_total_number; public Globals global = new Globals(); public List<String> Favorites_numbers; public List<String> Favorites_strings; String each_subject; TextView onvan; TextView population; Typeface tf; // List view private ListView lv; // List view Adapter ArrayAdapter<String> adapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.favorites); tf = Typeface.createFromAsset(getAssets(), "fonts/Mj_Beirut.TTF"); onvan=(TextView)findViewById(R.id.TextViewonvanf); onvan.setTypeface(tf); onvan.setText("لیست علاقه مندی ها"); search=(EditText)findViewById(R.id.etsearchh); imagebutton=(ImageButton)findViewById(R.id.ibsearchh); Favorites_strings = new ArrayList<String>(); Favorites_numbers = new ArrayList<String>(); final SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE); Subjects_total_number = global.Subjects_total_number; for(int x = 0; x < Subjects_total_number+1; x = x+1) { each_subject = "subject_" + String.valueOf(x); Boolean b = shared.getBoolean(each_subject, false); //اگر مقدار رشته در لیست علاقه مندی باشد وارد دستور زیر می شود if(b) { String this_subject = "subject_" + String.valueOf(x); int resID = getResources().getIdentifier(this_subject, "string", getPackageName()); Favorites_strings.add(getResources().getString(resID)); String x_string = String.valueOf(x); Favorites_numbers.add(x_string);
} } lv = (ListView) findViewById(R.id.listViewf); // Adding items to list view adapter = new ArrayAdapter<String>(this, R.layout.row_layoutfavorites, R.id.populationf, Favorites_strings); lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> parent, final View view,int position, long id) {
//این کد می گوید کلیک کن و در ارایه مد نظز خانه که انتخاب شده مقدار داخل آن را داخله رشته بریز String favorite_number = Favorites_numbers.get(position); //چون در اکتیوتی حرکات ما از عدد استفاده کردیم حالا رشته را به عدد تبدیل می کنیم int a=Integer.parseInt(favorite_number); //********************0-276 if(a<277) { Intent i = new Intent(AFavorites.this, Asubharakat.class); i.putExtra("harakat1", a); startActivity(i); } //****************277-283 else if(a<284) { Intent i = new Intent(AFavorites.this, Asubfigor.class); i.putExtra("harakat1", a); startActivity(i); } else if(a<287) //****************284-286 { Intent i = new Intent(AFavorites.this, Asubbarnameh.class); i.putExtra("harakat1", a); startActivity(i); } }
});
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 2,933
موضوعها: 191
تاریخ عضویت: تير ۱۳۹۱
اعتبار:
126
سپاس ها 1688
سپاس شده 3507 بار در 2023 ارسال
حالت من:
در روش getView از Adapter مربوط به کد خود، TextView را شناسایی کرده و فونت مورد نظر را به آن اعمال کنید. یعنی در این بخش از کدها :
کد پیاچپی: @Override public View getView(final int position, View view, ViewGroup parent) { final ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = inflater.inflate(R.layout.row_layout, null); holder.onvantamrin = (TextView) view.findViewById(R.id.population); //ست با تکست باکسی که برای نمایش holder.onvantamrin.setTypeface(tf); holder.pci = (ImageView) view.findViewById(R.id.flag); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); }
holder.onvantamrin.setText(ClassGetData.get(position).getonvantamrin()); holder.pci.setImageResource(ClassGetData.get(position).getpicnamad()); return view; }
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 8
موضوعها: 3
تاریخ عضویت: آذر ۱۳۹۴
اعتبار:
1
سپاس ها 0
سپاس شده 4 بار در 2 ارسال
حالت من: هیچ کدام
۱۳۹۴/۱۰/۰۴, ۱۲:۳۲ ق.ظ
(آخرین تغییر در ارسال: ۱۳۹۴/۱۰/۰۴, ۱۲:۳۴ ق.ظ توسط vid4259.)
الان تو کد زیر چطور میشه تکست مربوط به نمایش لیست ویو رو شناسایی کرد تا بتونم فونتش رو تغییر بدم
کد پیاچپی: public class AFavorites extends Activity {
TextView TextViewonvan; EditText search; EditText editTextSearch; TextView textviewonvanehdialog; TextView textviwedialogmessag; ImageButton imagebutton; public int Subjects_total_number; public Globals global = new Globals(); public List<String> Favorites_numbers; public List<String> Favorites_strings; String each_subject; TextView onvan; TextView population; Typeface tf; // List view private ListView lv; // List view Adapter ArrayAdapter<String> adapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.favorites); tf = Typeface.createFromAsset(getAssets(), "fonts/Mj_Beirut.TTF"); onvan=(TextView)findViewById(R.id.TextViewonvanf); onvan.setTypeface(tf); onvan.setText("لیست علاقه مندی ها"); search=(EditText)findViewById(R.id.etsearchh); imagebutton=(ImageButton)findViewById(R.id.ibsearchh); Favorites_strings = new ArrayList<String>(); Favorites_numbers = new ArrayList<String>(); final SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE); Subjects_total_number = global.Subjects_total_number; for(int x = 0; x < Subjects_total_number+1; x = x+1) { each_subject = "subject_" + String.valueOf(x); Boolean b = shared.getBoolean(each_subject, false); //اگر مقدار رشته در لیست علاقه مندی باشد وارد دستور زیر می شود if(b) { String this_subject = "subject_" + String.valueOf(x); int resID = getResources().getIdentifier(this_subject, "string", getPackageName()); Favorites_strings.add(getResources().getString(resID)); String x_string = String.valueOf(x); Favorites_numbers.add(x_string);
} } lv = (ListView) findViewById(R.id.listViewf); // Adding items to list view adapter = new ArrayAdapter<String>(this, R.layout.row_layoutfavorites, R.id.populationf, Favorites_strings); lv.setAdapter(adapter); });
سپاس شده توسط | |
|
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)
ارسالها: 8
موضوعها: 3
تاریخ عضویت: آذر ۱۳۹۴
اعتبار:
1
سپاس ها 0
سپاس شده 4 بار در 2 ارسال
حالت من: هیچ کدام
آخر خودم حلش کردم
اینم کل کد که قشنگ کار می کنه
کد پیاچپی: public class AFavorites extends Activity {
TextView TextViewonvan; EditText search; EditText editTextSearch; TextView textviewonvanehdialog; TextView textviwedialogmessag; ImageButton imagebutton; public int Subjects_total_number; public Globals global = new Globals(); public List<String> Favorites_numbers; public List<String> Favorites_strings; String each_subject; public String[] Subjects;
TextView onvan; TextView population; Typeface tf; // List view private ListView lv; // List view Adapter ArrayAdapter<String> adapter;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.favorites); tf = Typeface.createFromAsset(getAssets(), "fonts/Mj_Beirut.TTF"); onvan=(TextView)findViewById(R.id.TextViewonvanf); onvan.setTypeface(tf); onvan.setText("لیست علاقه مندی ها"); search=(EditText)findViewById(R.id.etsearchh); imagebutton=(ImageButton)findViewById(R.id.ibsearchh); Favorites_strings = new ArrayList<String>(); Favorites_numbers = new ArrayList<String>(); final SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE); Subjects_total_number = global.Subjects_total_number; for(int x = 0; x < Subjects_total_number+1; x = x+1) { each_subject = "subject_" + String.valueOf(x); Boolean b = shared.getBoolean(each_subject, false); //اگر مقدار رشته در لیست علاقه مندی باشد وارد دستور زیر می شود if(b) { String this_subject = "subject_" + String.valueOf(x); int resID = getResources().getIdentifier(this_subject, "string", getPackageName()); Favorites_strings.add(getResources().getString(resID)); String x_string = String.valueOf(x); Favorites_numbers.add(x_string);
} } lv = (ListView) findViewById(R.id.listViewf); MyAdapter adapter = new MyAdapter(AFavorites.this, R.layout.row_layoutfavorites, R.id.populationf,Favorites_strings); // Adding items to list view //adapter = new ArrayAdapter<String>(this, R.layout.row_layoutfavorites, R.id.populationf, Favorites_strings); lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> parent, final View view,int position, long id) {
//این کد می گوید کلیک کن و در ارایه مد نظز خانه که انتخاب شده مقدار داخل آن را داخله رشته بریز String favorite_number = Favorites_numbers.get(position); //چون در اکتیوتی حرکات ما از عدد استفاده کردیم حالا رشته را به عدد تبدیل می کنیم int a=Integer.parseInt(favorite_number);
//********************0-276 if(a<277) { Intent i = new Intent(AFavorites.this, Asubharakat.class); i.putExtra("harakat1", a); startActivity(i); finish(); } //****************277-283 else if(a<284) { Intent i = new Intent(AFavorites.this, Asubfigor.class); i.putExtra("harakat1", a); startActivity(i); finish(); } else if(a<287) //****************284-286 { Intent i = new Intent(AFavorites.this, Asubbarnameh.class); i.putExtra("harakat1", a); startActivity(i); finish(); } }
}); private class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, int resource, int textViewResourceId, List<String> strings) { super(context, resource, textViewResourceId, strings); // TODO Auto-generated constructor stub } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View row = inflater.inflate(R.layout.row_layoutfavorites, parent, false);
//در اینجا از مقداری که در لیست نام بر که از اول پر می شود استفاده می کنیم //Favorites_strings[a,b,c,,d,] //Favorites_numbers[1,2,3,4]=[12,23,24] //Favorites_numbers.get(position)=12=subject_12=a String this_subject = "subject_" + Favorites_numbers.get(position); int resID = getResources().getIdentifier(this_subject, "string", getPackageName()); String my_string = getResources().getString(resID); TextView tv = (TextView) row.findViewById(R.id.populationf); tv.setText(my_string); tf = Typeface.createFromAsset(getAssets(), "fonts/Mj_Beirut.TTF"); tv.setTypeface(tf);
return row; }
}
}
|