bahman2012

سوال : نوشتن یه تابع با یک متغییر برای همه buttoon ها

16 ارسال در این موضوع قرار دارد

دوستان کارم ضرب العجلیه منتظر جوابتون هستم---مممنون

سلام دوستان من کلی دکمه دارم که فقط باس از یه دستور پیروی کنه  و من یه تابع ساختم که توش آیدی دکمه متغییره رو باس بهش بدم اما یه جای کارش مشکل داره

	private void b ( int btn){	Button b =(Button)findViewById(R.id.btn //این متغییر که برای هر دکمه باید یک ایدی مشخص نوشته بشه) ;	b.setOnClickListener(new OnClickListener() {	@Override	public void onClick(View v) {		// TODO Auto-generated method stub	}});}

آیا باید اینجوری فراخوانیش کنم

b(btn1);// مثلا زمانی که بخوام دکمه ای با ایدی رو به رو فراخوانی کنم	b(btn2);b(btn3);b(btn4);

سوال بعدی اینکه فرق بین اینها چیه تو نت جستجو کردم حقیقتش درست متوجه نشدم

privait

privaite void

public void

public static

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اگرم می خواید واسه همه توابعتون یه تابع داشته باشن از تابع زیر استفاده کنید 

[shcode=java]

public void ClickItem(View v)

{

switch (v.getId()) {

case R.id.Button1:

//دستورات

break;

case R.id.Button2:

//دستورات

break;

.

.

.

}

}

[/shcode]

اگرم همه یه کار قراره انجام بدن هم تابع رو اینجوری بنویسین

[shcode=java]

public void ClickItem(View v)

{

//دستورات

}

[/shcode]

توی فایل xml برای هر دکمه این دستور رو بنویسین

[shcode=java]

[/shcode]

[align=left]"android:onclick="ClickItem[/align]

[shcode=java]

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سوال بعدی اینکه فرق بین اینها چیه تو نت جستجو کردم حقیقتش درست متوجه نشدم

privait

privaite void

public void

public static

privait

یعنی یک محدوده ی خصوصی. مثلا شما وقتی یک متغیر یا یک متد یا پروپرتی رو در یک کلاس تعریف میکنید ، زمانی که بهش میگید محدوده ای private باشه یعنی حتی اگر از کلاس ارث برده شد یا از کلاس یک نمونه ساخته شد باز هم نمیتونید از خارج از کلاس بهش دسترسی داشته باشید

privaite void

همون تعریف قبلی برای متد هاست با این تفاوت که نوع خروجی تهی هست یعنی متد شما هیچی برنمیگردونه یا اصطلاحا چیزی return نمیکنه

public void

همون تعریف privaite void برای خروجیش رو در نظر بگید با این تفاوت که اگر متد رو به صورت عمومی یا public تعریف کنید میتونی پس از ایجاد نمونه از کلاس یا ارث بری به اون متد دسترسی داشته باشید

public static

اگر یک متد رو اینطوری تعریف بکنید یعنی هم سطح کلاس بوده و قبلا هم وارد رم شده و شما میتونید هربار با زدن نام کلاس و نقطه بهش دسترسی پیدا بکنید.

برای متغیر هم به همین معناست و مقدار این متغیر ذخیره میشه و شما میتونید هر بار بهش دسترسی داشته باشید و تغییرش بدید یا ازش استفاده کنید

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از پاسخگویی شما

ببنید منظورم اینه

الان من دوازده تا کلید با ایدی ها مختلف دارم که کارهمشون اینه که  برن به فقط تو یه صفحه مثلا

Search_Ch_Mah

 و یه مقدار خاص رو با خوشون ببرن ---من هی یه کد رو تکرار کردم و فقط مقدار کلمه ای که با خودشون میخوان ببرن رو تغییر دادم----برا همین میخام کد رو خلاصه کنم

protected void onCreate(Bundle savedInstanceState) {	super.onCreate(savedInstanceState);	setContentView(R.layout.maah);	 b1 =(Button)findViewById(R.id.btn1) ;	b1.setOnClickListener(new OnClickListener() {		@Override		public void onClick(View v) {			Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);			intent.putExtra("text", "فروردین");			Maah.this.startActivity(intent);		}});			 b2 =(Button)findViewById(R.id.btn2) ;			b2.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "اردیبهشت");					Maah.this.startActivity(intent);				}});			 b3 =(Button)findViewById(R.id.btn3) ;			b3.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "خرداد");					Maah.this.startActivity(intent);				}});			 b4 =(Button)findViewById(R.id.btn4) ;			b4.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "تیر");					Maah.this.startActivity(intent);				}});			 b5 =(Button)findViewById(R.id.btn5) ;			b5.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "مرداد");					Maah.this.startActivity(intent);				}});			 b6 =(Button)findViewById(R.id.btn6) ;			b6.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "شهریور");					Maah.this.startActivity(intent);				}});			 b7 =(Button)findViewById(R.id.btn7) ;			b7.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "مهر");					Maah.this.startActivity(intent);				}});			 b8 =(Button)findViewById(R.id.btn8) ;			b8.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "آبان");					Maah.this.startActivity(intent);				}});			 b9 =(Button)findViewById(R.id.btn9) ;			b9.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "آذر");					Maah.this.startActivity(intent);				}});			 b10 =(Button)findViewById(R.id.btn10) ;			b10.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent= new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "دی");					Maah.this.startActivity(intent);				}});			 b11 =(Button)findViewById(R.id.btn11) ;			b11.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "بهمن");					Maah.this.startActivity(intent);				}});			 b12 =(Button)findViewById(R.id.btn12) ;			b12.setOnClickListener(new OnClickListener() {				@Override				public void onClick(View v) {					Intent intent = new Intent(Maah.this,Search_Ch_Mah.class);					intent.putExtra("text", "اسفند");					Maah.this.startActivity(intent);				}});}

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

من ی راه دیگ فک می کردم بشه امتحان کردم نشد اما خب اینم طول کد رو کم میکنه لازم هم نیس button ها رو تعریف کرد[shcode=java]

public void ClickItem1(View v)

{

Intent intent=new Intent(this,dd.class);

switch (v.getId()) {

case R.id.btn1:

  intent.putExtra("text","a");

break;

case R.id.btn2:

  intent.putExtra("text","b");

break;

case R.id.btn3:

  intent.putExtra("text","c");

break;

default:

break;

}

startActivity(intent);

}

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام ممنون از راهنماییتون----میشه آیدی یاهوتونو بدید آنلاین ازتون بپرسم آخه هی به مشکل بر میخورم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام ممنون از راهنماییتون----میشه آیدی یاهوتونو بدید آنلاین ازتون بپرسم آخه هی به مشکل بر میخورم

یراه بهتر

اسم ماه ها رو تو تگ مربوط ب دکمه ها بذارین بعد ازین تابع استفاده کنین

[shcode=java]

public void ClickItem1(View v)

{

Intent intent=new Intent(this,dd.class);

  intent.putExtra("text",v.getTag().toString());

startActivity(intent);

}

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

وقتی به هر کدوم از کلید ها اینو اضافه میکنم این ارور ظاهر میشه

"android:onclick="ClickItem

C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:97: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:22:26 - SangDarmaniii] [2015-01-28 21:22:26 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:106: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:22:26 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:42: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:52: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:61: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:70: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:79: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:88: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:97: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] [2015-01-28 21:23:29 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:106: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 21:23:29 - SangDarmaniii] 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این تابع رو باید خارج oncreate تعریف کنین

بعد توی فایل xml فقط tag و onclick رو بهش معرفی کینن

ی نمونه کد گذاشتم ببینین

aa.zip

aa.zip

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این اطلاعات کلید تو فایل xml هستش الان دقیقا چی اضافه کنم-منظورتون از تگ چیه؟

                 android:id="@+id/btn1"

                 android:layout_width="wrap_content"

                 android:layout_height="wrap_content"

                 android:layout_marginTop="20dp"

                 android:background="@drawable/listitemfocus"

                 android:text="شناخت چاکرا"

                 android:textStyle="bold"

                  />

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

فایل پیوستی رو نگاه کنین متوجه میشین

[shcode=java]

android:tag="esfand"

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
                              android:id="@+id/btn2"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:background="@drawable/listitemfocus"                android:text="چاکـرای  اول"                android:textStyle="bold"                 android:tag="چاکـرای  اول"                android:onclick="ClickItem"/>
package ir.tahaquran.SangDarmani;import android.app.Activity;public class Chakra extends Activity {public void ClickItem(View v){Intent intent=new Intent(Chakra.this,Search_Ch_Mah.class);   intent.putExtra("text",v.getTag().toString());startActivity(intent);}@Overrideprotected void onCreate(Bundle savedInstanceState) {	super.onCreate(savedInstanceState);	setContentView(R.layout.chakra);}}

بازم ارور میده اینم نمونه ارور

niii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:107: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:02:50 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:52: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:62: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:71: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:80: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:89: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:98: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:03:12 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:107: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:03:12 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:52: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:63: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:72: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:81: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:90: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:99: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] [2015-01-28 22:07:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:108: error: No resource identifier found for attribute 'onclick' in package 'android'[2015-01-28 22:07:56 - SangDarmaniii] 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب اگ onclick رو دقیقا همینجوری نوشته باشین معلومه که خطا میده

onClick درستش اینجوریه

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این خطا رو میده

            android:id="@+id/img_titr_story"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:layout_below="@+id/img_titr_story"       android:layout_centerHorizontal="true"       android:src="@drawable/logo_maah"        android:onClick:"ClickItem"/>
[2015-01-28 22:30:56 - SangDarmaniii] C:\Users\ozon\Desktop\New folder (5)\New folder\booktest\res\layout\chakra.xml:19: error: Error parsing XML: not well-formed (invalid token)

اصلا

ClickItemزیرش قرمز--بجای سبز------با اون که اون متد رو خارج از oncriat گذاشتم

                              android:id="@+id/btn8"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:background="@drawable/listitemfocus"                android:text="چاکرای هفتم"                android:textStyle="bold"                 android:onClick="ClickItem"               />

ببخشید اصلا حواسم نبود = بزارم----------------------الان اون متد رو شناخت----مننننون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

وقتی می خوای از img به عنوان دکمه استفاده کنی باید این خط هم اضافه کنی

android:clickable="true"

اگ میتونین فایل رو پیوست کنین ببینم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

الان من میخوام تو یه اکتیویتی دیگه کلمه رو دریافت کنم و اگه مثلا اون کلمه گربه بود جای عکس اون قبلی عکس گربه رو براه همینجوی  تا اخر

Bundle ex = getIntent().getExtras();	Text = ex.getString("text");	ImageView img_titr =(ImageView) findViewById(R.id.img_titr_story);	img_titr.setImageResource(R.drawable.sangrize);		if(Text =="چاکرای اول"){		img_titr.setImageResource(R.drawable.cat1);	}	elseif(Text =="چاکرای دوم"){		img_titr.setImageResource(R.drawable.dog);		}}

میخوام از دستور سویچ استفاده کنم درست بلد نیستم از طرفی هم elseif رو هم خطلا میگیره--میشه راهنماییم کنید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری