PDA

View Full Version : مشکل در کدی که نوشتم



sina4everafter
یک شنبه 22 تیر 1393, 15:11 عصر
سلام. میشهراهنمایی کنید که این کد ها ایرادشون کجاست؟ اصلا اجرا نمیشن.ممنون.

کلاس اصلی:

import android.app.Activity;
import android.os.Bundle;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);

//---Code The Application---
ButtonClass btn = new ButtonClass();
btn.initializeButton();
}


}


کلاس Button:


import android.widget.Button;
import android.widget.LinearLayout;


public class ButtonClass extends MainActivity{


//---Button---
public void initializeButton(){

String[] name = new String[2];
name[0] = "Length";
name[1] = "Volume";


for (int i = 0; i <= 1; i++) {
LinearLayout li = (LinearLayout) findViewById(R.id.li);
Button btn = new Button(this);
btn.setText(name[i]);
btn.setWidth(15);
btn.setHeight(0);
li.addView(btn);
}
}
}

parvizwpf
یک شنبه 22 تیر 1393, 15:17 عصر
همین فور رو داخل خود کلاس اکتیویتی بنویسید تست کنید.

sina4everafter
یک شنبه 22 تیر 1393, 15:22 عصر
بله امتحان کردم. اونجا اجرا میشه.

sina4everafter
یک شنبه 22 تیر 1393, 15:48 عصر
ممنون میشم اگر راهنماییم کنید.

mfaridi
یک شنبه 22 تیر 1393, 19:30 عصر
مشکلت این هست که هنوض کلمه this رو درک نکردی


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);

//---Code The Application---
ButtonClass btn = new ButtonClass();
btn.initializeButton(this);
}


}

کد کلاس دکمه
public class ButtonClass extends MainActivity{


//---Button---
public void initializeButton(Context c){

String[] name = new String[2];
name[0] = "Length";
name[1] = "Volume";


for (int i = 0; i <= 1; i++) {
LinearLayout li = (LinearLayout) findViewById(R.id.li);
Button btn = new Button(c);
btn.setText(name[i]);
btn.setWidth(15);
btn.setHeight(0);
li.addView(btn);
}
}
}

mfaridi
یک شنبه 22 تیر 1393, 19:32 عصر
ولی اینجوری که معلومه میخوای چند تا دکمه بسازی ولی بازم کدت فک کنم درست نباشه چون من کد رو تست نکردم

rubiks.kde
یک شنبه 22 تیر 1393, 20:11 عصر
مشکلت این هست که هنوض کلمه this رو درک نکردی

مطمئنید مشکل فقط همینه؟؟؟؟؟

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

sina4everafter
یک شنبه 22 تیر 1393, 20:31 عصر
والا من تقریبا در مورد داکیومنت اندروید مطالعه کردم. ولی اصلا نمی تونم متوجه این مشکل بشم. حتی من بعدش یه متد onCreate هم داخل کلاس دوم نوشتم و همچنین متد setContentView هم براش نوشتم. ولی باز هم نشد.
اگه راهنماییم کنید ممنون میشم.

rubiks.kde
دوشنبه 23 تیر 1393, 01:25 صبح
ببین دوست عزیز من نمیدونم هدفت چیه ولی کدی که زدی مشکلش اینه که هیچ وقت کلاسی که از اکتیویتی ارث برده میشه رو new نمیکنن.حتی نوع ارث بریت هم اشتباهه داری کد رو میندازی توی یه حلقه.

داری توی کلاس دوم یه سری button رو درست میگنی که اصلا توی اون نیستن
LinearLayout li = (LinearLayout) findViewById(R.id.li);
توی این خط هم احتمالا داری به صورت متغییر به باتن ها دسترسی پیدا میکنی؟که اینم کاملا اشتباهه.

کدی که شما نوشتی اصلا حاوی هیچ منطقی نیست که من بگم فلان جاش رو تغییر بدی حل میشه.کلا از منطق و ریشش خرابه.

بهتره بفرمایید هدفتون چیه؟میخوایید چیکار کنید تا بشه بهتر راهنماییتون کرد

sina4everafter
دوشنبه 23 تیر 1393, 09:55 صبح
ممنون.
من می خوام چند تا دکمه که همانطور که مشاهده کردین با حلقه for ایجاد کنم. ولی می خوام یه کلاس جدا گانه برای دکمه داشته باشم که کلاس اصلی برنامم خیلی شلوغ نشه.یا مثلا می خوام یه لیست اسپینر و ایجاد کنم تو یه کلاس جدا گانه.کلا می خوام خیلی تمیز کار کنم که برنامه خیلی گنگ نشه.

sina4everafter
دوشنبه 23 تیر 1393, 13:47 عصر
ممنون میشم اگر راهنماییم کنید.

parvizwpf
دوشنبه 23 تیر 1393, 15:00 عصر
بهتره هر نوع ویویی که میخواهید بسازید در داخل خود اکتویتی باشه و میتونید توی یک متد اینکارو انچام بدید دیگه نیازی هم به پاس دادن آبجکت اضافی هم ندارید. فکر نکنم به اون حد کد شما رو شلوغ کنه. در ضمن ساخت کلاس برای باتن هم کار صحیحی نیست و بی فایده هست.