بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
کندی برنامه نوشته شده با اندروید استودیو
سلام دوستان
من تازه کار با اندروید استودیو رو شروع کردم و واسه آشنایی با محیطشو .. شروع به نوشتن پروژه دوز که قبلا با اکلیپس نوشته بودمش کردم..وقتی با اندروید استودیو از برنامه خروجی میگیرم و روی گوشی خودم امتحان میکنم(گوشیم 8 هسته ایه) برنامه خیلی پرش داره(با وجود اینکه کار گرافیکی خاصی نمیکنه و فقط با هر کلیک یه عکس رو توی ایمج ویو نشون میده ) و توی Logcat هم پیغام میاد که ممکنه کار زیادی به دوش main thread باشه(The application may be doing too much work on its main thread)...حالا همین برنامه و همین کد رو با اکلیپس نوشتم و بازم روی همون گوشیم امتحان کردم خیلی روون و سریع و بدون پرش کار میکنه(هم در اندروید استودیو هم اکلیپس،پروژه هام فقط یک ترد دارن که همون main thread)
سوال من اینه که چرا اینطوریه؟
0
0
نام پکیج هر دو پروژه ام یکیه وقتی اونی که با اندروید استودیو نوشتم رو اجرا میکنم کلی لاگ میده و پرش داره برنامه و همون پیغام too much work on its main thread رو میده ولی وقتی پاک میکنم و اونی که با اکلیپس نوشتم رو اجرا میکنم هم نرم کار میکنه هم اون لاگ رو اصن نداره...واقعا حالبه واسم کسی اگه میدونه دلیلشو لطفا بگه..ممنون (10 سال پیش)
0
0
دوستان من هنوزم سردرگمم بابت این موضوع!! :(( ...این میتونه به سیستم بیلد اندروید استودیو مربوط باشه؟ انروید استودیو از ابزار بیلد SDK استفاده نمیکنه؟؟؟ (10 سال پیش)
+2
0
دوست عزیز مگه استاد تو آموزشهاش اندروید استودیو رو تدرس میکنن. (10 سال پیش)
0
0
چه ربطی داره؟؟اکلیپس و اندروید استودیو محیط توسعه هستند و شما میتونی از هر IDE که میخوای برای توسعه استفاده کنی و اگه سوالی پیش اومد بپرسی .دوستانی که اطلاعات داشته باشن پاسخ میدن...اینجا انجمن توسعه دهندگان اندرویده(در جریان که هستید؟) ... (10 سال پیش)
+2
0
من که نگفتم سوال شما عیبی داره.
فقط می خواستم بفهمم که آیا استاد تو آموزشهاشون اندروید استودیو رو تدریس میکنن با نه (10 سال پیش)
0
0
سورس + apk رو منتشر کنید شاید کسی پی به علتش برد. (10 سال پیش)
0
0
جناب نصرتی عزیز خیلی سپاسگزارم از توجهتون،گویا کندی و لگ برنامه از بین رفته ولی با این حال پروسس برنامه من خیلی پیام و لاگ در لاگ کت نشون میده حتی زمانیکه اسکرین رو تاچ نمیکنم و ترد اصلی برنامه idle هستش! کد خیلی خاصی نزدم هنوز..همون کدهایی که با لمس ایمیج ویو ها عکس دایره و ضربدر رو یکی در میون قرار میده..تنها تفاوتش با برنامم که با اکلیپس نوشتم اینه که minSDK = 15 هستش و کتابخونه AppCompat-v7 رو اضافه کردم.. (10 سال پیش)
0
0
کدها رو پایین گذاشتم...کلا همینه (10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
مسعود فرمانی
10 سال پیش
0
0
package bluebyte.first_project.tictactoegame;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class ActivityMain extends Activity {
ImageView[] images;
private boolean isPlayerOne ;
private byte[][] results ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
results = new byte[3][3];
images = new ImageView[9];
images[0]= (ImageView) findViewById(R.id.img1);
images[1]= (ImageView) findViewById(R.id.img2);
images[2]= (ImageView) findViewById(R.id.img3);
images[3]= (ImageView) findViewById(R.id.img4);
images[4]= (ImageView) findViewById(R.id.img5);
images[5]= (ImageView) findViewById(R.id.img6);
images[6]= (ImageView) findViewById(R.id.img7);
images[7]= (ImageView) findViewById(R.id.img8);
images[8]= (ImageView) findViewById(R.id.img9);
View.OnClickListener imagesListener= new View.OnClickListener() {
@Override
public void onClick(View view) {
ImageView imageView = (ImageView) view;
int imagesTag = (Integer) imageView.getTag();
byte row = (byte) Math.floor(imagesTag / 3);
byte col = (byte)(imagesTag % 3);
Log.i("LOG","row,col = " + row + ","+col);
if(results[row][col] != 0){
Toast.makeText(getApplicationContext(),"این خانه قبلا انتخاب شده است",Toast.LENGTH_SHORT).show();
return;
}
if(isPlayerOne){
imageView.setImageResource(R.mipmap.circle);
results[row][col] = 1;
}else{
imageView.setImageResource(R.drawable.multiply);
results[row][col] = 2;
}
isPlayerOne = !isPlayerOne;
if(declareWinnerOrDraw()){
resetGame();
}
}
};
for(int i =0;i<9;i++){
images[i].setTag(i);
images[i].setOnClickListener(imagesListener);
}
}
private boolean declareWinnerOrDraw(){
for(int i = 0 ;i<3;i++){
if(results[i][0] == results[i][1] && results[i][1] == results[i][2] && results[i][0] != 0){
Toast.makeText(getApplicationContext(),"Player"+results[i][0] + "Wins!",Toast.LENGTH_SHORT).show();
return true;
}
}for(int i = 0 ;i<3;i++){
if(results[0][i] == results[1][i] && results[1][i] == results[2][i] && results[0][i] != 0){
Toast.makeText(getApplicationContext(),"Player"+results[0][i] + "Wins!",Toast.LENGTH_SHORT).show();
return true;
}
}
byte counter = 0;
for (int i = 0;i<3;i++){
for(int j = 0;j<3;j++){
if(results[i][j] != 0){
counter++;
}
}
}
if(counter == 9){
return true;
}
return false;
}
private void resetGame(){
for(int i =0 ; i< 3 ;i++){
for(int j = 0;j<3;j++){
results[i][j] = 0;
}
}
for(int i = 0;i<9;i++){
images[i].setImageResource(0);
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .