رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام.

من تو برنامم چندتا دکمه دارم که که همه شون چند خط کد مشترک اجرا می کنن.

حالا برای اینکه کدها طولانی نشه این چند خط کد رو می خوام تو یه تابع بذارم و بعد داخل رویداد onclick دکمه ها اون تابع رو فراخوانی کنم.

ولی نمیشه.:huh:

این برنامه بدون تابع هست که  رویداد 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]

که کلی خطا میده.تابع رو هرجای پروژه که میذارم فایده نداره.

چکار کنم؟:huh:

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

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

بنظرم با این کدا داری خودتو گیچ میکنی

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

برنامه من چندتا دكمه و اسكرول ويو داخلش هست(كه متناسب با سايز صفحه نمايش صفحه رو پر ميكنن). وقتي رو بعضي از دكمه ها كليك مي كني هر چي وسط صفحه هست(دكمه،اسكرول،تكست ويو و ...) ناپديد ميشن(اندازه شون صفر ميشه) و يه سري چيزاي ديگه نمايش داده ميشه.

حالا چون هفت هشت تا دكمه هستن كه نيازه بعد از كليك روشون وسط صفحه پاك بشه مي خوام اين دستورات(مثل دستورات ibtn6) رو تو يه تابع بذارم بعد تو رويداد onclick اون هفت هشت تا دكمه فراخواني كنم.

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

برای دکمه ها چرا از لیست ویو استفاده نمیکنی.

که با کلیک روی هر ایتم اونی که میخوای اجرا شه

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

نماي نرم افزار اينطوره.شبيه كاشي هاي زنده ويندوز فون 8 هست.

اصلا ليست ويو به كارم نمياد.

شما فكر كن ۴تا دكمه داريم كه با كليك روي هر كدوم,سايز تمام دكمه ها صفر ميشه.

نمي خوام دستورات رو ۴بار براي ۴تا دكمه بنويسم.مي خوام دستورات رو تو يه تابع بذارم و فقط تو رويداد دكمه ها فراخوانيش كنم.

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

شما دستوراتتون رو دارید

کافیه اخر هر دستور دکمه رو به یه onclick بزنید

اخرم برای همه یکی استفاده کنید

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

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

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...