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

استفاده از appcompat v7 برای ساخت Actionbar

override  11 سال پیش  11 سال پیش
0 0

من از appcompat v7 support library و از روشی که در تصویر زیر هم ملاحظه میفرمایید برای اضافه کردن LIBRARY به پروژه و ساخت actionbar استفاده کردم که بعد از رفع چند تا مشکل کوچیک جواب داد ولی سئوالی که دارم برای زمانیه که من فولدر کتابخونه رو میبندم با اینکار یه علامت تعجب قرمز رنگ روی پروژه ظاهر میشه که این خطا رو میده که ساختن workspace با مشکل مواجه شد، که خب منطقیه ولی چون دفعه اولمه ، میخواستم ببینم این خطا طبیعیه یا نه؟ و اینکه همیشه لازمه کتابخونه ای که در پروژه استفاده شده باز باشه ؟

و این هم خطا:

 در ضمن اگه دوست دارید از actionbar استفاده کنید این راهنمایی خیلی کمکتون میکنه تمام موارد مربوط به اکشن بار رو با مثال توضیح داده به این سئوال هم سر بزنید

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
override  11 سال پیش
0 0

سئوال  دومم اینه که اگه بخوام در چند تا اکتیویتی مختلف از اکشن بار استفاده کنم حتمآ باید برای تک تکشون به صورت جداگانه در فولدر menu فایل xml ایجاد کنم و آیتم های اکشن بار رو در اون قرار بدم نمیشه آیتم هایی که در کل اکتیویتی ها مورد نیازه در یه فایل xml تعریف کنیم و در هر اکتیویتی فقط مواردی رو که لازمه نشون بدیم؟ مثلاً Settings,about,help رو در اکتیویتی اصلی و search ,favorite,important رو در یه اکتیویتی دیگه داشته باشیم.


سئوال بعدی هم اینکه من میخوام با استفاده از روشی که در این لینک اومده background اکشن بار رو تغییر بدم ولی هر ترفندی میزنم جواب نمیده :| کسی میدونه مشکل ممکنه از کجا باشه؟

 <?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">

<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>

</resources>

بعد هم به صورت زیر تم رو به اکتیویتی مورد نظر اعمال کردم

  <activity android:theme="@style/CustomActionBarTheme"/>

 

0 0
بچه ها این سئوالایی که پرسیدم که سئوال نیستن فقط یه راهنمایی میخوام اولی اگر تا حالا با کتابخونه کار کرده باشید جوابش : یه نه مشکلی نیست یا بله مشکل داره هست ، دومی هم جوابش: بله میشه یا نخیر نمیشه سومی حالا یه خرده شاید راحت نشه جواب داد .جواب بدید لطفاً من که کم کم دارم از جواب گرفتن تو این سایت ناامید میشم :/ به پروفایلم سر بزنیدبیشتر سئوالام رو یا خودم جواب دادم یا اصلاً بی جواب مونده دریغ از یه نظر حتی بی ربط :-| (11 سال پیش)
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+3 0

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

من یک اکتیویتی parent ساختم که استاد با عنوان enhanced اکتیویتی آموزش دادند ، بعد اون اکتیویتی اکشن بار داره و در onOptionMenuCreate هم دوباره فایل xml رو set می کنید ، فایل xml رو هم با عنوان public_menu_items.xml ساختم :)

سوال سوم تون رو نمیدونم ! ، یعنی کار نکردم  ، اما بهتون این لینک رو پیشنهاد میدم :)

در مورد سوالتون ، و بی پاسخ موندن !

حقیقت اینه من به تاپیک طولانی کمتر بها میدم و فکر میکنم خودتون هم قبول داشته باشید که می شد هر سه سوالتون رو در 3 خط کامل نوشت ، پس شما خودتون هم مقصر هستید  ، با این وجود ، من وقتی دیدم پاسخ سوالتون رو میدونم (متوجه شدم مرتبط به اکشن بار هست و تقریبا بهش مسلط ام ) مشترک سوال شدم ، که اگه پاسخ مناسب نگرفت ، پاسخ بدم

از نظر من ، سوال کننده ، 80 درصد در جواب های دریافتی نقش داره :)

0 0
از لطفتون خیلی ممنونم بهم کمک کرد - نمیدونم البته حق با شماست وقتی سئوال طولانی میشه کمتر کسی حوصله خوندن داره ولی من ترجیح میدم اگه سئوالی میپرسم همه ی جزئیات رو همون دفعه اول ذکر کنم تا از سئوال جواب بی مورد جلوگیری بشه و راستش تا اونجا که ممکن بود "به نظر خودم" سعی کردم سئوالم کوتاه باشه- مثلاً اولین سئوال اون تصاویر که میگه چیکار کردم به نظرتون بی مورده؟ یا سوال سوم به اون کدها نیازی نداره؟من اگه خودمو میکشتم میشد 6 خط نهایت :) ولی سعی میکنم از این به بعد رعایت کنم. (11 سال پیش)
+1 0
خواهش میکنم ، در مورد سوال سوم چون پاسخ مناسب ندادم ، پس نظری ندارم ، اما سوال اول و دوم تون بدون توضیح اضافه هم قابل فهم بود ، مثلا من اگه میخواستم در اون مورد سوال مطرح کنم می گفتم - 1 آیا لازمه در حین توسعه پروژه ی اصلی ، پروژه ی کتابخانه باز باشه ، چون وقتی میبندم اش ، ارور میده ! - 2 - چطور میتونم برای یه سری اکتیویتی خاص ، از اکشن باز با ایتم های یکسان استفاده کنم - 3 - من طبق این لینک سعی کردم بکگراند اکشن بار رو تغییر بدم ، اما نشد ، کسی ازش استفاده کرده ؟! ، اینها همه نمونه بود ، من هیچ وقت یادم نمیره من خودم همه چیز رو با سوال و جواب تو همین انجمن یاد گرفتم ، مثلا در مورد اکشن بار هم سوال های زیادی مطرح کردم ، از سوالی که اصلا نمیدونستم اسم چیزی که دنبالش اکشن باره ، تا سوالی که دنبال تب ساختن ، دراپ داوون منو ، Easy Share Action برای اکشن بار بودم (11 سال پیش)
0 0
درسته الان میبینم دیگه خیلی از اولش توضیح دادم :) ولی سئوال 1 چون دفعه اولم بود که به این شکل از کتابخونه استفاده میکردم فکر کردم ممکنه در اضافه کردن کتابخونه مشکلی باشه میخواستم از همین مطمئن بشم. دومین سئوال نتونستم منظورم رو درست برسونم فکر کردم خودم جواب شما رو درست نفهمیدم ولی الان که سوال منو خلاصه نوشتید فهمیدم نه! ، من نمیخوام از اکشن بارهایی با آیتم های یکسان در اکتیویتی هااستفاده کنم اتفاقاً آیتم هاشون با هم کاملاً فرق داره فقط میخوام فایل xml که آیتم های هر اکشن بار باید در اون تعریف بشه یه فایل واحد باشه نه مثلاً 5 تا فایل xml هر کدوم دوتا آیتم ، این کار شدنیه یا نه ?. (11 سال پیش)
0 0
جواب سئوال دوم در این لینک بود (11 سال پیش)
0 0
من از Enhanceed Activity که توضیح دادید استفاده کردم حالا onCreateOptionMenu رو چه طور باید در اکتیویتی اصلی override کنم تا آیتم مورد نظر مخفی بشه؟ (11 سال پیش)
0 0
تصحیح:اصلی --> موردنظر (11 سال پیش)
+1 0
دقیقا منم به همون جواب دادم ! / من اینطوری نوشته بودم ، یه متد گذاشته بودم برای هرکدوم ، مثلا HideShare - HideAbout و اونجایی که بهشون نیاز نداشتم مخفی میکردم ، (11 سال پیش)
0 0
لینک (11 سال پیش)
0 0
خطا لینک (11 سال پیش)
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+4 0

این یه نمونه از public item های من ، که در واقع همون enhanced Activity میشه

public class publicBarItems extends ActionBarActivity {

    private static MenuItem   cmsItem;
    private static MenuItem   searchItem;
    private static SearchView mySearchView;


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.setting:
                startActivity(new Intent(G.context, Activitysetting.class));
                return true;
            case R.id.CMS:
                startActivity(new Intent(G.context, ActivityCMS.class));
                return true;
            case R.id.about:
                startActivity(new Intent(G.context, ActivityAbout.class));
                return true;
        }
        return super.onOptionsItemSelected(item);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.shared, menu);
        cmsItem = menu.findItem(R.id.CMS);
        searchItem = menu.findItem(R.id.action_search);
        mySearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        mySearchView.setOnQueryTextListener(new OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String text) {
                startActivity(new Intent(G.context, ActivitySearchResult.class)
                        .putExtra("searchText", text)
                );
                return true;
            }


            @Override
            public boolean onQueryTextChange(String text) {
                return true;
            }
        });

        MenuItem item = menu.findItem(R.id.menu_item_share);
        ShareActionProvider Provider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
        Provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
        Provider.setShareIntent(createShareIntent());
        return true;
    }


    private Intent createShareIntent() {
        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "My Test Text");
        return shareIntent;
    }


    public static void hideCatRelated() {
        try {
            cmsItem.setVisible(false);
            searchItem.setVisible(false);
        }
        catch (Exception e) {
            G.logger("nullPointer at public bar items - Hidden");
        }
    }


    public static void showCatRelated() {
        try {
            cmsItem.setVisible(true);
            searchItem.setVisible(true);
        }
        catch (Exception e) {
            G.logger("nullPointer at public bar items - Visible ");
        }
    }
}

و سایر اکتیویتی ها که میخواین اون ایتم هارو نشون بده حتما باید اینطوری تعریف بشن وگرنه اکشن بار نمایش داده نمیشه !

public class ActivityMain extends publicBarItems {

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

}
پاسخ به سوال 
override  11 سال پیش
+1 0

چیکار کنم که قسمت overflow menu در همه ی دستگاه ها مثل تصویر اول فقط از بالا نمایش داده بشه و مثل تصویر دوم نشه؟

بابت سانسور هم معذرت میخوام اگه میخواید عکس رو ببینید باید با فیل شکن بازش کنید D:

                         

0 0
یه سئوال دیگه هم دارم دو تا عکس رو چه طور میشه در یه کادر کنار هم گذاشت؟هر بار که تصویر آپلود میکنم به جای اینکه بره کنارش قرار بگیره جای عکس قبلی رو میگیره! مخسره کرده (11 سال پیش)
+1 0
تصحیح:مخسره-->مسخره (استاد این ویرایش نظر خیلی لازمه حداقل برای یه مدت محدود) (11 سال پیش)
0 0
اگه فهمیدی به منم بگو D: (11 سال پیش)

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