amin-rz 0 ارسال شده در ۶ تیر ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۶ تیر ۱۳۹۳ سلام. من تو برنامم چندتا دکمه دارم که که همه شون چند خط کد مشترک اجرا می کنن. حالا برای اینکه کدها طولانی نشه این چند خط کد رو می خوام تو یه تابع بذارم و بعد داخل رویداد onclick دکمه ها اون تابع رو فراخوانی کنم. ولی نمیشه. این برنامه بدون تابع هست که رویداد ibtn6 و ibtn7 و btn11 چندتا کار تکراری رو انجام میدن [shcode=java] package com.example.smsbaaz; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.content.res.Resources; import android.graphics.Point; import android.text.Layout; import android.view.Display; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.webkit.WebView; import android.widget.Button; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; public class MainActivity extends Activity { @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ScrollView scrollview2 = (ScrollView) findViewById(R.id.scrollView2); final ScrollView scrollview3 = (ScrollView) findViewById(R.id.scrollView3); final ScrollView scrollview4 = (ScrollView) findViewById(R.id.scrollView4); final Button btn11 = (Button) findViewById(R.id.button11); WebView webview = (WebView) findViewById(R.id.webView1); final ImageButton ibtn1 = (ImageButton) findViewById(R.id.imageButton1); final ImageButton ibtn2 = (ImageButton) findViewById(R.id.imageButton2); final ImageButton ibtn3 = (ImageButton) findViewById(R.id.imageButton3); final ImageButton ibtn4 = (ImageButton) findViewById(R.id.imageButton4); final ImageButton ibtn5 = (ImageButton) findViewById(R.id.imageButton5); final ImageButton ibtn6 = (ImageButton) findViewById(R.id.imageButton6); final ImageButton ibtn7 = (ImageButton) findViewById(R.id.imageButton7); final ImageButton ibtn8 = (ImageButton) findViewById(R.id.imageButton8); webview.loadUrl("file:///android_asset/moghadame.txt"); {//home Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); final int width = size.x; int height = size.y; ibtn1.setLayoutParams(new LinearLayout.LayoutParams(width/4, width/4)); ibtn2.setLayoutParams(new LinearLayout.LayoutParams(width/4, width/4)); ibtn3.setLayoutParams(new LinearLayout.LayoutParams(width/4, width/4)); ibtn4.setLayoutParams(new LinearLayout.LayoutParams(width/4, width/4)); ibtn5.setLayoutParams(new LinearLayout.LayoutParams(width/2, width/2)); ibtn6.setLayoutParams(new LinearLayout.LayoutParams(width/2, width/2)); ibtn7.setLayoutParams(new LinearLayout.LayoutParams(width/4, width/4)); ibtn8.setLayoutParams(new LinearLayout.LayoutParams(width/4, width/4)); btn11.setLayoutParams(new LinearLayout.LayoutParams(width/2, width/4)); scrollview2.setLayoutParams(new LinearLayout.LayoutParams(width,height-width)) ; scrollview3.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; scrollview4.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; } btn11.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); final int width = size.x; int height = size.y; scrollview2.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; scrollview3.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; ibtn5.setLayoutParams(new LinearLayout.LayoutParams(0,0)); ibtn6.setLayoutParams(new LinearLayout.LayoutParams(0,0)); scrollview4.setLayoutParams(new LinearLayout.LayoutParams(width,height-width)) ; } }); ibtn6.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); final int width = size.x; int height = size.y; scrollview2.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; scrollview4.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; ibtn5.setLayoutParams(new LinearLayout.LayoutParams(0,0)); ibtn6.setLayoutParams(new LinearLayout.LayoutParams(0,0)); scrollview3.setLayoutParams(new LinearLayout.LayoutParams(width,height-width)) ; } }); ibtn7.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); final int width = size.x; int height = size.y; scrollview2.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; scrollview4.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; ibtn5.setLayoutParams(new LinearLayout.LayoutParams(0,0)); ibtn6.setLayoutParams(new LinearLayout.LayoutParams(0,0)); scrollview3.setLayoutParams(new LinearLayout.LayoutParams(width,height-width)) ; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } [/shcode] حالا من یه تابع اینطوری ساختم که کدهای تکراری رو داخلش گذاشتم: [shcode=java] public void web() { // TODO Auto-generated method stub Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); final int width = size.x; int height = size.y; scrollview2.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; scrollview3.setLayoutParams(new LinearLayout.LayoutParams(0,0)) ; ibtn5.setLayoutParams(new LinearLayout.LayoutParams(0,0)); ibtn6.setLayoutParams(new LinearLayout.LayoutParams(0,0)); scrollview4.setLayoutParams(new LinearLayout.LayoutParams(width,height-width)) ;[/shcode] و تو رویداد دکمه ها اینطور فراخوانی می کنم: [shcode=java] btn11.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub web(); } }); [/shcode] که کلی خطا میده.تابع رو هرجای پروژه که میذارم فایده نداره. چکار کنم؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
SASAN_AH 38 ارسال شده در ۶ تیر ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۶ تیر ۱۳۹۳ شما بگید برنامتون دارای چه چیزایی هست و چه میخواید تا بهترین کمک رو بهتون رو بکنم بنظرم با این کدا داری خودتو گیچ میکنی نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
amin-rz 0 ارسال شده در ۶ تیر ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۶ تیر ۱۳۹۳ برنامه من چندتا دكمه و اسكرول ويو داخلش هست(كه متناسب با سايز صفحه نمايش صفحه رو پر ميكنن). وقتي رو بعضي از دكمه ها كليك مي كني هر چي وسط صفحه هست(دكمه،اسكرول،تكست ويو و ...) ناپديد ميشن(اندازه شون صفر ميشه) و يه سري چيزاي ديگه نمايش داده ميشه. حالا چون هفت هشت تا دكمه هستن كه نيازه بعد از كليك روشون وسط صفحه پاك بشه مي خوام اين دستورات(مثل دستورات ibtn6) رو تو يه تابع بذارم بعد تو رويداد onclick اون هفت هشت تا دكمه فراخواني كنم. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
SASAN_AH 38 ارسال شده در ۶ تیر ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۶ تیر ۱۳۹۳ برای دکمه ها چرا از لیست ویو استفاده نمیکنی. که با کلیک روی هر ایتم اونی که میخوای اجرا شه نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
amin-rz 0 ارسال شده در ۶ تیر ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۶ تیر ۱۳۹۳ نماي نرم افزار اينطوره.شبيه كاشي هاي زنده ويندوز فون 8 هست. اصلا ليست ويو به كارم نمياد. شما فكر كن ۴تا دكمه داريم كه با كليك روي هر كدوم,سايز تمام دكمه ها صفر ميشه. نمي خوام دستورات رو ۴بار براي ۴تا دكمه بنويسم.مي خوام دستورات رو تو يه تابع بذارم و فقط تو رويداد دكمه ها فراخوانيش كنم. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
SASAN_AH 38 ارسال شده در ۷ تیر ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۷ تیر ۱۳۹۳ شما اینطور کنید که برای هر چندتا دکمه رو ست کنید به کلیکر بعد یه تابع برای کلش بزنید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
amin-rz 0 ارسال شده در ۷ تیر ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۷ تیر ۱۳۹۳ بخشي از دستورات دكمه ها مشابه هستن. دستورات متفاوتي هم براي هر دكمه هست. آخرش نگفتيد. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
SASAN_AH 38 ارسال شده در ۷ تیر ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۷ تیر ۱۳۹۳ شما دستوراتتون رو دارید کافیه اخر هر دستور دکمه رو به یه onclick بزنید اخرم برای همه یکی استفاده کنید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
amin-rz 0 ارسال شده در ۷ تیر ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۷ تیر ۱۳۹۳ ميشه يه مثال بزني كه چطوريه ايني كه ميگي. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .