آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

بحث مهم در مورد فرگمنت ها و کاربردهای آن

مرتضی مرادی  10 سال پیش  10 سال پیش
0 0

با سلام یه سوال خیلی مهم داشتم از خدمت دوستان

من یه سری فرگمنت درست کردم ولی انگار کد نویسی تو فرگمنت با کد نویسی تو اکتیویتی معمولی فرق داره مثلا تو تعریف

Button button = (Button)finvdviewbyid(R.id.hellio) l

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

و باید قبل از findview یه مقدار getView() l قرار بدیم

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

لطفا اگه میشه راهنمایی ام کنید که چطور کدهای یه اکتیویتی رو بیارم تو یه فرگمنت و چه تغییراتی لازم هست؟ مثلا کد های لیست ویو تو اکتیویتی معمولی با فرگمنت چقدر فرق داره با تشکر.

لطفا کمک کنید کارم واجبه

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
SaeiD-as  10 سال پیش
+3 0

دوست من سلام

کد نویسی در فرگمنت یک سری تفاوت هایی با کد نویسی در اکتیویتی داره، تفاوتش هم در اکستندز کردن اون از Fragment و سپس متدهایی هست که باید override بشن، من برای نمونه کدهایی رو از فرگمنت در زیر براتون قرار داده ام:

 public class MyFragment extends Fragment {

    private ViewGroup    layout;
    private Adapter      adapter;
    private GridView     gridView;
    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        layout = (ViewGroup) inflater.inflate(R.layout.fragment_layout, null);    //در این قسمت لایه فرگمنت معرفی می شود
        return layout;
    }


    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        gridView = (GridView) layout.findViewById(R.id.grdList);
        adapter = new Adapter(G.list);
        gridView.setAdapter(adapter);

        populateFromNetwork();

        adapter.notifyDataSetChanged();

        Button btn = (Button) layout.findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(G.currentActivity, ActivitSecound.class);
                G.currentActivity.startActivity(intent);
            }
        });
    }

کدها مشخص هستند، همانطور که خودتون هم اشاره کردید قبل از findViewByID بایستی لایه ای رو که viewGroup هست رو قبل از اون معرفی کنیم

موفق باشید 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .