ببخشید مشکل من همین هست که من خودم که کلاس 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);
}
}
});