انجمن سایت کلیدستان



تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)زمان کنونی: ۱۳۹۵/۰۹/۱۹، ۰۸:۲۳ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: vid4259
آخرین ارسال: vid4259
پاسخ 8
بازدید 847

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#1
سلام من از کد لیست علاقه مندی خود سایت در برنامه ام استفاده کردم حالا می خوام فونت لیست ویو ها رو تغییر بدم نمیشه ممکن هست کمکم کنید:

کلید 2259

فکر کنم باید اینجا تغیرات بدم ولی هرکاری می کنم ارور میده

کد:
       ;(adapter = new ArrayAdapter<String>(this, R.layout.list_item_favorites, R.id.favorites_textView, Favorites_strings
       ;(lv.setAdapter(adapter
پاسخ

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#2
سلام.
در این موارد، باید کد مربوط به Adapter سازنده item های ListView را بیابیم و سپس در بخشی از آن که TextView (یا TextView  های) مربوط به هر item کدنویسی شده است، کدهای مربوط به تغییر فونت را برای TextView بنویسیم.

کد Adapter در کلیدی که ذکر کردید :

کد پی‌اچ‌پی:
private class MyAdapter extends ArrayAdapter<String>{

 
       public MyAdapter(Context contextint resourceint textViewResourceId,
 
                       String[] strings) {
 
               super(contextresourcetextViewResourceIdstrings);
 
               // TODO Auto-generated constructor stub
 
       }
 
       
        
@Override
        public View getView
(int positionView convertViewViewGroup parent) {
 
               LayoutInflater inflater = (LayoutInflatergetSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
               View row inflater.inflate(R.layout.list_item_subjectsparentfalse);
 
               String[] items Subjects;
 
               
                TextView tv 
= (TextViewrow.findViewById(R.id.textView1);
 
               tv.setText(items[position]);

 
               return row;
 
             


که بخش مربوط به TextView در آن قابل تشخیص می باشد :

کد پی‌اچ‌پی:
TextView tv = (TextViewrow.findViewById(R.id.textView1);
tv.setText(items[position]); 

کد تعیین فونت برای TextView در کلید زیر ذکر شده است (آن را برای کد بالا به کار ببرید) :

کلید شماره 834

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#3
ببخشید منظورتون اینه که یک کلاس با نام MyAdapter درست کنم و این کد رو توش وارد کنم بعد توی اکتیویتی یک شی از این کلاس تعریف کنم و بعد پرش کنم
پاسخ

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#4
(۱۳۹۴/۰۹/۳۰, ۱۲:۱۹ ق.ظ)vid4259 نوشته: ببخشید منظورتون اینه که یک کلاس با نام MyAdapter درست کنم و این کد رو توش وارد کنم بعد توی اکتیویتی یک شی از این کلاس تعریف کنم و بعد پرش کنم

خیر، در کلیدی که ذکر کردید، کلاس MyAdapter کدنویسی شده است (یک Adapter است که item های ListView را می سازد). بنده تنها نشان دادم که TextView (مربوط به ساختار item ها) در کجا تعریف شده است و باید کدهای تعیین فونت را به آن اضافه کنید.

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#5
ببخشید مشکل من همین هست که من خودم که کلاس 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<ClassGetDataarraylist;
 
   //برای اینکه �?ونت رو از اکتیوتی مربوطه بگیره
 
   Typeface tf


 
   public ListViewAdapter(Context context, List<ClassGetDataClassGetData ,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 positionView viewViewGroup parent) {
 
       final ViewHolder holder;
 
       if (view == null) {
 
           holder = new ViewHolder();
 
           view inflater.inflate(R.layout.row_layoutnull);
 
           holder.onvantamrin = (TextViewview.findViewById(R.id.population);
 
           //ست با تکست باکسی که برای نمایش
 
           holder.onvantamrin.setTypeface(tf);
 
           holder.pci = (ImageViewview.findViewById(R.id.flag);
 
           view.setTag(holder);
 
       } else
 
       {
 
           holder = (ViewHolderview.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 wparraylist) {
 
       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<
StringFavorites_numbers;
    public List<
StringFavorites_strings;
    
String each_subject;
    
    
TextView onvan;
    
TextView population;
    
Typeface tf;
    
// List view
 
   private ListView lv;
 
    
    
// List view Adapter
 
   ArrayAdapter<Stringadapter;
    
    
/** 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 0Subjects_total_number+1x+1
        { 
 
             each_subject 
"subject_" String.valueOf(x);
 
           Boolean b shared.getBoolean(each_subjectfalse);
 
           //اگر مقدار رشته در لیست علاقه مندی باشد وارد دستور زیر می شود
            
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 
= (ListViewfindViewById(R.id.listViewf);
 
 
       
        
// Adding items to list view
 
       adapter = new ArrayAdapter<String>(thisR.layout.row_layoutfavoritesR.id.populationfFavorites_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) (برنامه نویسی اندروید)

#6
در روش getView از Adapter مربوط به کد خود، TextView را شناسایی کرده و فونت مورد نظر را به آن اعمال کنید. یعنی در این بخش از کدها :

کد پی‌اچ‌پی:
@Override
public View getView(final int positionView viewViewGroup parent) {
 
   final ViewHolder holder;
 
   if (view == null) {
 
       holder = new ViewHolder();
 
       view inflater.inflate(R.layout.row_layoutnull);
 
       holder.onvantamrin = (TextViewview.findViewById(R.id.population);
 
       //ست با تکست باکسی که برای نمایش
 
       holder.onvantamrin.setTypeface(tf);
 
       holder.pci = (ImageViewview.findViewById(R.id.flag);
 
       view.setTag(holder);
 
   } else
 
   {
 
       holder = (ViewHolderview.getTag();
 
   }

 
   holder.onvantamrin.setText(ClassGetData.get(position).getonvantamrin());
 
   holder.pci.setImageResource(ClassGetData.get(position).getpicnamad());
 
   
    return view
;



Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#7
الان تو کد زیر چطور میشه تکست مربوط به نمایش لیست ویو رو شناسایی کرد تا بتونم فونتش رو تغییر بدم
کد پی‌اچ‌پی:
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<StringFavorites_numbers;
 
   public List<StringFavorites_strings;
 
   String each_subject;
 
   
    TextView onvan
;
 
   TextView population;
 
   Typeface tf;
 
   // List view
 
   private ListView lv;
 
    
    
// List view Adapter
 
   ArrayAdapter<Stringadapter;
 
   
    
/** 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 0Subjects_total_number+1x+1
 
        
             each_subject 
"subject_" String.valueOf(x);
 
           Boolean b shared.getBoolean(each_subjectfalse);
 
           //اگر مقدار رشته در لیست علاقه مندی باشد وارد دستور زیر می شود
 
           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 
= (ListViewfindViewById(R.id.listViewf);
 
 
       
        
// Adding items to list view
 
       adapter = new ArrayAdapter<String>(thisR.layout.row_layoutfavoritesR.id.populationfFavorites_strings);
 
       lv.setAdapter(adapter);
 
       
 
});
 
            
         
پاسخ

تغییر فونت لیست ویو (ListView) (برنامه نویسی اندروید)

#8
آخر خودم حلش کردم
اینم کل کد که قشنگ کار می کنه
کد پی‌اچ‌پی:
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<
StringFavorites_numbers;
    public List<
StringFavorites_strings;
    
String each_subject;
    
     public 
String[] Subjects;

    
    
TextView onvan;
    
TextView population;
    
Typeface tf;
    
// List view
 
   private ListView lv;
 
    
    
// List view Adapter
 
   ArrayAdapter<Stringadapter;


    
    
/** 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 0Subjects_total_number+1x+1
        { 
 
             each_subject 
"subject_" String.valueOf(x);
 
           Boolean b shared.getBoolean(each_subjectfalse);
 
           //اگر مقدار رشته در لیست علاقه مندی باشد وارد دستور زیر می شود
            
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 
= (ListViewfindViewById(R.id.listViewf);
 
 
       MyAdapter adapter = new MyAdapter(AFavorites.thisR.layout.row_layoutfavoritesR.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;
        }


    
            
        }
        

    


پاسخ
 سپاس شده توسط admin


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)