PDA

View Full Version : Switch کردن بین Activityها از طریق ImageView



Sepehr M
دوشنبه 05 آبان 1393, 12:02 عصر
سلام....چطور میتونم از طریق منویی که ساختم با لمس کردن هر دکمه برم به صفحه مورد نظر....الان واسه یکی از دکمه هام که دکمه Enter هستش اینمارو کردم....ولی مشکل اینجاست که من چندتا دکمه دارم...Enter,About,Exit...الان با زدن Enter میرم صفحه بعد و مشکلی ندارم ولی میخوام موقعی که کاربر دکمه About رو بزنه بره به یه صفحه دیگه که ساختم....دقیقا نمیدونم این دستور if رو کجا باید بکار ببرم....کسی میتونه کمک کنه؟اینم کدهایی که دارم استفاده میکنم.....ممنون.

package my.book.namespace;

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


public class TheLastOfUsActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView myimg = (ImageView) findViewById(R.id.enter);
myimg.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
startActivity(new Intent(TheLastOfUsActivity.this, one.class));

}
});
}
}

gilas1368
دوشنبه 05 آبان 1393, 12:33 عصر
سلام....چطور میتونم از طریق منویی که ساختم با لمس کردن هر دکمه برم به صفحه مورد نظر....الان واسه یکی از دکمه هام که دکمه Enter هستش اینمارو کردم....ولی مشکل اینجاست که من چندتا دکمه دارم...Enter,About,Exit...الان با زدن Enter میرم صفحه بعد و مشکلی ندارم ولی میخوام موقعی که کاربر دکمه About رو بزنه بره به یه صفحه دیگه که ساختم....دقیقا نمیدونم این دستور if رو کجا باید بکار ببرم....کسی میتونه کمک کنه؟اینم کدهایی که دارم استفاده میکنم.....ممنون.

package my.book.namespace;

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


public class TheLastOfUsActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView myimg = (ImageView) findViewById(R.id.enter);
myimg.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
startActivity(new Intent(TheLastOfUsActivity.this, one.class));

}
});
}
}


شما ی تابع مینویسید و با استفاده از تابع getId اسم اون imageview رو میگیرید بعد داخل همون تابع با ی switch روی اسم imageview اکتیویتی های موردنظرتون رو فراخوانی میکنین

بعد توی رویداد onclick تمامی imageviewهاتون اسم تابع رو میذارید و تمام

حالا کاربر روی هرکدوم ک کلیک کنه تابع شما فراخوانی میشه، id اون imageview گرفته میشه و با توجه به id اکتیویتی مورد نظرش اجرا میشه

اینم ی نمونه از تابع:



public void imageViewClick(View view)
{
int id=view.getId();

switch (id)
{
case 1:
//فراخوانی اکتیویتی
breack;
case 2:
// فراخوانی اکتیویتی دوم
breack;
}
}

Sepehr M
دوشنبه 05 آبان 1393, 12:34 عصر
یعنی اینی که نوشتم رو به کل باید تغییر بدم؟

gilas1368
دوشنبه 05 آبان 1393, 12:39 عصر
یعنی اینی که نوشتم رو به کل باید تغییر بدم؟

شما میای و توی رویداد onCreate همه imageViewهات رو پیدا میکنی و بعد رویداد کلیک رو براش مینویسی

بجای اینکار و نوشتن کد اضافی ی تابع بنویس و اون تابع رو توی onClick المانات فراخوانی کن

اینجوری هم کد اضافه نمیزنی
هم کدات خواناتر میشن