PDA

View Full Version : مشکل در کدنویسی برای یک شی



moh_sen201
پنج شنبه 12 بهمن 1391, 11:38 صبح
سلان به همه ی برنامه نویس های گل
من 50% برنامه نویسی c# بلدم..کد های جاوا هم کپی c# اند
من فقط یه جا مشکل دارم؟
وقتی یه button میارم تو برنامه
بعدش نمیدونم چجوری براش کد بنویسم؟
از طریق override نمیخام بنویسم؟ چون خیلی میپیچونه و تازشم خیلی گنگه
تو سی شارپ دوبار کلیک میکردم و کد مینوشتم اینجا باید چیکار کنم؟
معادلی داره تو اینجا؟

shahin bahari
پنج شنبه 12 بهمن 1391, 13:33 عصر
درسته جاوا با سی شارپ شباهت هایی داره اما اگر قرار بود همه چیش مثل اون باشه که دیگه زبون دیگه نمیشد!
برای این کار شما باید یه Button تعریف کنید و به ویو گرافیکی اون رو لینک بدید. بعد باید از طریق set on click listener برای اون call back یا معادلی سی شارپیش event بنویسید.

Button btn=(Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//write your code here...
}
});

moh_sen201
پنج شنبه 12 بهمن 1391, 18:20 عصر
نمیفهمم.
یکی هست کامل روال کارو واسم توضیح بده؟
مثلا با زدن دکمه متنی تو تکس باکس ذخیره بشه؟

Nevercom
پنج شنبه 12 بهمن 1391, 19:36 عصر
شما دوراه برای اینکار دارید
هنگامی که Button رو در فایل XML‌که همون Layout هست تعریف میکنید، از خصوصیت onClick استفاده کنید، مقدار این خصیصه رو نام دقیق متدی قرار بدید که باید هنگام کلیک روی Button اجرا بشه.

مثال:
کد XML که حاوی یک Button هست و با کلیک روی button متد sendMessage اجرا میشه:
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
در Activity ای که این Layout لود میشه، باید متدی بنام sendMessage موجود باشه که حتماً به فرمت زیر باشه:

/** Called when the user touches the button */
public void sendMessage(View view) {
// Do something in response to button click
}

یعنی این متد باید آرگومانی از جنس View بگیره و void باشه و public باشه.

روش دوم اینه که یک رفرنس از شئ موردنظر (مثلاً Button) در Activity بگیرید، که این با توجه به id اون شئ که در فایل XML تعریف شده هست.
و بعد با استفاده از متد setOnClickListener به رویداد Click پاسخ میدید.

مثلاً همون فایل XML رو درنظر بگیرید، id این Button برابر با button_send هست
در Activity از کد زیر برای پاسخ به رویداد کلیک استفاده می کنیم:
public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

‌Button b = (Button) findViewById(R.id.button_send);
b.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// Handle Click event here

}
});

}

}

البته همین روش رو میتونید به شکل دیگه ای هم انجام بدید. اون رو به خودتون واگذار میکنم

moh_sen201
یک شنبه 15 بهمن 1391, 20:56 عصر
دمت گرم..خیلی کامل بود.
راه افتادم

moh_sen201
یک شنبه 15 بهمن 1391, 20:59 عصر
درسته جاوا با سی شارپ شباهت هایی داره اما اگر قرار بود همه چیش مثل اون باشه که دیگه زبون دیگه نمیشد!
برای این کار شما باید یه Button تعریف کنید و به ویو گرافیکی اون رو لینک بدید. بعد باید از طریق set on click listener برای اون call back یا معادلی سی شارپیش event بنویسید.

Button btn=(Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//write your code here...
}
});


شاهین بهادری عزیز منظور شمارم تازه فهمیدم!
یعنی از اون اول گفتید هیچی سردر نیاوردم.اما بعد از مطالعه , الان خیلی خیلی واسم آسون شده.
ممنونم از توجهتون به سوالم

atilia
چهارشنبه 18 بهمن 1391, 10:53 صبح
البته تو ورژن های جدید می تونی مثل همون C#‎ از طریق پنجره ی خصوصیات رویدادش رو به یک متد تو Activity خودش ارتباط بدی. یعنی یه متد داشته باشی تو Activity مثلا به اسم (button_click(View v بعد تو خصوصیات دکمه که تو ویو اضافه کردی به رویداد کلیکش assign کنی

moh_sen201
چهارشنبه 18 بهمن 1391, 15:11 عصر
یه راه حل عالی!
تابع بنویسید بعد اسم تابع رو رو رویداد onClick یک butoon فراخوانی کنید