انجمن سایت کلیدستان



مشکل در رفتن به اکتیویتی دیگرزمان کنونی: ۱۳۹۵/۰۹/۱۵، ۰۶:۵۸ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: leadstar71
آخرین ارسال: moralschool
پاسخ 15
بازدید 4322

رتبه موضوع:
  • 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در رفتن به اکتیویتی دیگر

مشکل در رفتن به اکتیویتی دیگر

#1
سلام. خسته نباشید.
من با برنامه eclipse تا الان 2 اکتیویتی ساختم که در داخل اکتیویتی اول چند دکمه قرار داره که عکس آنها رو پیوست کردم. همونطور که در عکس مشاهده می کنیم من 5 تا دکمه دارم که فقط تونستم با کلیک کردن بر روی دکمه با عنوان ((درباره)) به یک اکتیویتی دیگه منتقل بشم. ولی میخواستم از دکمه با عنوان ((بستکی)) به یک اکتیویتی دیگه برم که تمام مراحل رو انجام دادم ولی در موقع کد نویسی در MainActivity.java با مشکل برخورد کردم که خطای برنامه و کدها رو در عکس می بینید. الان میخوام یک راهنماییم کنه مشکل کار من کجا بوده؟ آیا من در کد نویسی اشتباه کرده ام یا اینکه کد باید به صورت دیگه ای نوشته می شد؟ من در زمینه کد نویسی مهارت زیادی ندارم فقط برای یک دکمه تونستم درست کنم ولی برای دکمه های دیگه با خطای عکس مواجه شدم. لطفا راهنمایی کنید.
 


فایل‌های پیوست

عکس(ها)
       
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#2
سلام.
اولین مورد این است که شما دو تا دکمه (Button) با نام b ساخته اید که مجاز نیست و باید برای دکمه دوم، نامی متفاوت انتخاب کنید.
همچنین باید روش setOnClickListener را برای دکمه های مختلف، به طور جداگانه بنویسید.
الآن در کدهای مربوط به روش setOnClickListener که نوشته اید، دو بار از startActivity استفاده کرده اید که غلط است و تنها باید یکی باشد.
بنابراین با تعریف نام دکمه ها به صورت متفاوت و همچنین جداگانه به کار بردن روش  setOnClickListener برای آنها، می توان از این خطاها اجتناب کرد. شما کدهای یک دکمه را کامل بنویسید و سپس همان را در ادامه، copy و paste کنید و تنها نام دکمه و نام Activity که می خواهید کاربر به آن منتقل بشود را تغییر بدهید.
کدهای لازم برای رفتن کاربر به Activity جدید، با اشاره بر روی یک دکمه (Button)، در کلید زیر شرح داده شده است :

http://www.kelidestan.com/android/android-56.php

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#3
این الان کد MainActivity.java هست که این کد برای یک دکمه درست کار میکنه. و از MainActivity به second انتقال داده میشه:
package com.example.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

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.button2);
        b.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this,second.class));

                
            }
        });
    }


    @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;
    }
    
}
الان من میخوام از activity_main.xml به اکتیویتی bastaki.xml با استفاده از button1 برم. الان من باید کد رو کجا و در چه قسمت وارد کنم. اگه امکان داره کد رو برام بنویسیدو
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#4
برایتان کلید زیر را نوشتم :

http://www.kelidestan.com/keys/keys.php?key=820

که در آن، چگونگی ساخت چند دکمه (Button) در یک Activity موجود در برنامه اندروید، شرح داده شده است (هر دکمه، کاربر را به یک Activity دیگر می برد).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#5
 دوست عزیز دستتون درد نکنه بابت ساختن کد.
ولی من هرکاری می کنم setOnclickListener پیغام خطا میده. نمیدونم مشکل چیه
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#6
کد من الان با استفاده از کدهایی که شما گفتین اینه:
package com.example.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

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.button2);
        b.setOnClickListener(new OnClickListener() {

        Button b1=(Button) findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener() {
                         
     @Override
     public void onClick(View v) {
         startActivity(new Intent(MainActivity.this, bastaki.class));
     }
})
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this,second.class));

                
            }
        });
    }


    @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;
    }
    
}

پاسخ

مشکل در رفتن به اکتیویتی دیگر

#7
کد شما ایراد داره هر دکمه رو باید جداگانه تعریف کنید
کد صحیح شما باید این باشه :

کد:
package com.example.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

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.button2);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, bastaki.class));
}
});

// ------ کد یک دکمه دیگر ------
Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivity(new Intent(MainActivity.this,second.class));
}
});

}

}
پاسخ
 سپاس شده توسط admin

مشکل در رفتن به اکتیویتی دیگر

#8
من اون کدهایی که خودت زحمت ساختش رو کشیده بودی هم امتحان کردم. الان خطای setOnClickListener نمیده فقط در انتهای کد علامت { خطا داده و در ابتدای کار هم public class Activity1 extends Activity { علامته پیغام خطا داده و کد من الان به این صورت هستش:

کد پی‌اچ‌پی:
package com.example.dokmeh;

import com.example.dokmeh.R;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class 
Activity1 extends Activity {**********

    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity1);
        
Button b= (ButtonfindViewById(R.id.button1);
        
b.setOnClickListener(new OnClickListener() {
                         
     public 
void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity2.class));
     


Button b2 = (ButtonfindViewById(R.id.button2);
b2.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity3.class));
     }
});

Button b3 = (ButtonfindViewById(R.id.button3);
b3.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity4.class));
     }
});

Button b4 = (ButtonfindViewById(R.id.button4);
b4.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity5.class));
     }
});

Button b5 = (ButtonfindViewById(R.id.button5);
b5.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity6.class));
     }
     });

     }

     }********** 

این الان کد من هست و اونجاهایی که ستاره گذاشتم بدین منظور هست که پیغام خطاها الان در اینجاست
 
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#9
من پروژه خودم رو واسه شما پیوست کردم. لطفاً خودتون نگاه کنید. من الان همه چی رو پاک کردم فقط واسه دکمه درباره تعریف کردم که کار میکنه. ولی واسه دکمه های بستکی - بندری - عربی - ایرانی اگه شما بتونین براش کد بنویسید که با کلیک بر روی هر کدوم به یک اکتیویتی برن دیگه خیلی خیلی ممنونتون میشم. یه لطف بزرگی در حق ما کردین.
 
اینم لینک دانلود پروژه: http://s6.uplod.ir:182/d/2k23gbga4hvhuf6...kMusic.zip
 

 
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#10
کسی این مساله رو بررسی نکرد ببینه مشکل از کجاست. لطفا مشکل رو پیدا کنید. من تو این قسمت گیر کردم
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#11
همان مبحثی که نوشتم را یک بار دیگر با حوصله بخوانید.
نباید تنها کدها را کپی کنید، بلکه باید بدانید که دقیقا هر کد از چه بخش هایی تشکیل شده و چکار میکنه.
بررسی پروژه های کاربران و خطایابی به جای آنها، بی فایده است. شما باید خودتون خطایابی یاد بگیرید.
مثلا این بخش از کدهاتون رو ببینید :

کد:
Button b= (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity2.class));



Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity3.class));
}
});

شما وسط روش setOnClickListener ، یک دکمه جدید دیگر تعریف کردید که کاملا غلطه و نشون میده که ساختار کدهای مربوط به دکمه (Button) رو متوجه نشدید. منظورم بعد از startActivity اول است. این بخش از کدها رو باید حذف کنید :

کد:
Button b= (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity2.class));

وقتی علامت خطا در یک خط از برنامه نمایش داده میشه، دلیل بر این نیست که حتما آن خط غلط است، بلکه ممکن است بخش های دیگری از کد را غلط نوشته باشید که کل ساختار کدها غلط شده باشد. 

شما یک Activity جدید در پروژه اندروید خود بسازید و خوب به کدهای آن نگاه کنید تا متوجه بشوید که یک Activity ، در هنگام ساخت و بدون افزودن کدهای جدید، دقیقا ساختار کدهایش چگونه است.
بعد برید سراغ همان مبحثی که گفتم. دقیقا ببینید که کدهای یک دکمه (Button) چگونه است و کدهای چند دکمه، چگونه از تکرار آن ساخته می شود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#12
خوب این چیزی که شما میگید من وسط روش نوشتم. من تمام روش های دیگه هم امتحان کردم باز هم جواب نداد.کد:

کد:
Button b= (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {

Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity2.class));

public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity3.class));
}
});

اینجوری هم من امتحان کردم ولی باز هم به جوابی نرسیدم
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#13
شما به حرف های من و آن دوستی که راهنماییتان کردند، گوش نمی دهید (کمی صبورانه تر کد بنویسید ). 
به هر حال، من چندین بار پاسخ دادم و سایر پاسخ های من نیز تکرار همان پاسخ ها می باشد. بنابراین، این نوشته، آخرین ارسال بنده در این موضوع می باشد.
موفق باشید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#14
خوب شما چیزی که میگید در حد حرفه ای ها میگید. بابا من تازه کارم. بلاخره از مطلبی که تو سایت خودتون هست هم من امتحان کردم. بلاخره یه جای کد اشتباه هست.
 
پاسخ

مشکل در رفتن به اکتیویتی دیگر

#15
کد صحیح اینه :

کد پی‌اچ‌پی:
package com.example.dokmeh;

import com.example.dokmeh.R;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class 
Activity1 extends Activity {

    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity1);
        
Button b= (ButtonfindViewById(R.id.button1);
        
b.setOnClickListener(new OnClickListener() {
                         
     public 
void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity2.class));
     }
});


Button b2 = (ButtonfindViewById(R.id.button2);
b2.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity3.class));
     }
});

Button b3 = (ButtonfindViewById(R.id.button3);
b3.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity4.class));
     }
});

Button b4 = (ButtonfindViewById(R.id.button4);
b4.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity5.class));
     }
});

Button b5 = (ButtonfindViewById(R.id.button5);
b5.setOnClickListener(new OnClickListener() {
                         
     @
Override
     
public void onClick(View v) {
         
startActivity(new Intent(Activity1.thisActivity6.class));
     }
     });

     }

     } 
 
پاسخ
 سپاس شده توسط admin


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)