آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

صدا زدن یک non static method از داخل یک کلاس دیگر

116236  8 سال پیش  8 سال پیش
0 0

برای صدا زدن یک non static method از داخل یک کلاس دیگر چه روشی وجود دارد؟

فقط مشکلی که وجود داره اینه که این method قراره در activity خودش تغییراتی ایجاد کنه. پس روش ساخت یک نمونه (instance) از روی کلاسی که method در آن قرار دارد در اینجا جوابگو نیست.

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
FSR  8 سال پیش
0 0

سلام

خب میتونید متدی داخل همون کلاس درست کنید که با صدا زدن اون تغییرات رو داخل کلاس اعمال کنه.

بیشتر توضیح بدید مثلا شما میخواید با کلیک بروی یک باتون تغییرات داخل یکی از اکتیوتی هاتون بدید در صورتی نمیخواید واردش بشید ؟

در این صورت هم میتونید از کلاس G برای تغییرات و استفاده از اونها داخل اکتیویتی دیگه تون استفاده کنید.

+1 0
من میخوام وقتی روی یکی از عناصر داخل ListView کلیک می کنم، با توجه به عنصری که روی اون کلیک شده، تغییراتی روی صفحه activity اجرا بشه. (8 سال پیش)
0 0
چه تغییراتی باید انجام بشه بیشتر توضیح بدید. (8 سال پیش)
0 0
تغییر متن داخل یک EditText (8 سال پیش)
پاسخ به سوال 
FSR  8 سال پیش
0 0

سلام

یه نمونه کد :

کلاس لیست ویو

 public class ActivityListview extends ActivityEnhance {

@Override
protected void onResume() {
super.onResume();
if (G.adapter != null) {
G.adapter.notifyDataSetChanged();
}
}

//List
ListView lstConntent;
/*
* استاتیک کردن متغییر
*/

static EditText edt;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);
edt = (EditText) findViewById(R.id.edt);

G.adapter = new AdapterListview(G.data_list);
lstConntent = (ListView) findViewById(R.id.lstConntent);
lstConntent.setAdapter(G.adapter);
G.getData();
G.adapter.notifyDataSetChanged();
}

/*
* متد استاتیک
*/
public static void setEditText(String data) {
edt.setText(data);
}
}

کلاس ادپتر

 public class AdapterListview extends ArrayAdapter<String> {

public AdapterListview(ArrayList<String> array) {
super(G.context, R.layout.adapter_listview, array);
}


private static class ViewHolder {

TextView txtName;


public ViewHolder(View view) {
txtName = (TextView) view.findViewById(R.id.txtName);

}


public void fill(final AdapterListview adapterListview, final String item, final int position) {

txtName.setText(item);
txtName.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
/*
* صدا زدن مستقیم متد
*/
ActivityListview.setEditText(item);
}
});

}
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;

String item = getItem(position);
if (convertView == null) {
convertView = G.layoutInflater.inflate(R.layout.adapter_listview, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
}

فقط کافیه متد ها و متغییر هارو استاتیک تعریف کنید

0 0
کدهای من یه مقدار طولانی و گیج کننده س. فقط خلاصه ش اینه که نمی تونم همه متغیر ها رو استاتیک کنم. قبلاً این روش رو امتحان کردم ولی یه جایی به بن بست می خورم. اگه راه حل دیگه ای باشه ممنون میشم. بازم ممنون از اینکه وقت گذاشتین (8 سال پیش)
0 0
بازم اگه حوصله داری کدهاش رو بفرستم (8 سال پیش)
0 0
تا اونجا که سواد من قد میده از همین راه باید استفاده کنید (8 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .