سیدمحمد 248 ارسال شده در 23 اسفند، ۱۳۹۴ اشتراک گذاری ارسال شده در 23 اسفند، ۱۳۹۴ سلام دوستان. میخواستم بدونم میشه اکتیویتی main یا همون اکتیویتی اصلی رو تغییرداد؟ مثلا میخام برنامه با اکتیویتی دیگه ای غیر از اکتیویتی main شروع بشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 23 اسفند، ۱۳۹۴ اشتراک گذاری ارسال شده در 23 اسفند، ۱۳۹۴ سلام ببینید در بیسیک4اندروید اکتیویتی Main بصورت خودکار با اضافه شدن این intent-filter به مانیفست لانچ میشه: <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> شما اگه بعد از اجرا به پوشه object برید و فایل androidManifest.xml رو باز کنید با notepad میتونید در تگ <activity این تکه کد رو ببینید که کارش همون لانچ کردن اکتیویتی Main بصورت پیشفرض هست. خب ازاونجایی که بیسیک این اجازه رو به ما نداده تا بتونیم از داخل پروژمون این کد رو عوض کنیم ، یعنی این خاصیت رو از اکتیویتی Main ورداریم و بذاریم روی اکتیویتی دیگمون ، میتونیم این کد رو برای مثال برای اکتیویتی ac2 هم از داخل Manifest خود بیسیک اضافه کنیم: AddActivityText(ac2,<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>) که اما متاسفانه بااینکار دوتا اکتیویتی مون میشن لانچر اون برنامه و با نصب شدن برنامه دوتا آیکن اضافه میشه به منوی گوشی که یکیش اکتیویتی Main و دیگری ac2 رو اجرا میکنه. پس این راهکار خوب نیست. ------------------------------------------------------------------------------------------------------------ راه دیگه اینه که شما به فرض یک پروژه دارید که توش فقط اکتیویتی Main هست ، حالا یه اکتیویتی دیگه میسازیم به نام مثلا ac2 وقتی ایجادش کردیم ، برنامه رو یکبار کامپایل میکنیم تا کدهای این اکتیویتی جدید به AndroidManifest اضافه بشه. حالا به پوشه object پروژمون میریم و فایل AndroidManifest.xml رو با notepad باز میکنیم یک کد به این شکل وجود داره: <activity android:windowSoftInputMode="stateHidden" android:launchMode="singleTop" android:name=".main" android:label="b4a exmaple" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> که اینجا این تکه کد رو کات میکنیم: <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> و اضافش میکنیم برای اکتیویتی ac2 خودمون که به این صورت میشه: <activity android:windowSoftInputMode="stateHidden" android:launchMode="singleTop" android:name=".ac2" android:label="B4A Example" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> پس حالا اکتیویتی ac2 ما شد لانچر و اکتیویتی Main که کد لانچر توش بود رو پاک کردیم.... حالا برای اینکه برنامه بعد از نصب دکمه (باز کردن) اش دچار مشکل نشه و با کلیک کردنش همون اکتیویتی ای که لانچر هست اجرا بشه ، کدهای مربوط به ac2 رو توی مانیفست میبریم بالای بالا تا اول اون رو بشناسه. برای مثال ، این کل کدهای مانیفست پروژمون: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="b4a.example" android:versionCode="1" android:versionName="" android:installLocation="internalOnly"> <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="14"/> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true"/> <application android:icon="@drawable/icon" android:label="B4A Example" android:theme="@android:style/Theme.Holo"> <activity android:windowSoftInputMode="stateHidden" android:launchMode="singleTop" android:name=".ac2" android:label="B4A Example" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:windowSoftInputMode="stateHidden" android:launchMode="singleTop" android:name=".main" android:label="B4A Example" android:screenOrientation="portrait"> </activity> <service android:name=".starter"> </service> <receiver android:name=".starter$starter_BR"> </receiver> </application> </manifest> اگه دقت بکنید کدهای مربوط به اکتیویتی Main پایین تر از ac2 قرار دارن پس مشکلی پیش نمیاد و حالا دیگه ac2 بجای main اجرا یشه. فایل رو Save میکنیم ، روش کلیک راست میکنیم و ReadOnly میکنیم.... (حتما باید اینکار انجام بشه) لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Amir - B 185 ارسال شده در 23 اسفند، ۱۳۹۴ اشتراک گذاری ارسال شده در 23 اسفند، ۱۳۹۴ سلام تا به حال تست نکردم به محل ذخیره پروژه برید و توی پوشه Object فایل AndroidManifest.xml باز کنید . حالا دنبال <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> بگردید و اونرو Cut کنید . حالا اگر به کدها دقت کنید ، میبینید که برای هر اکتیویتی ساخته شده در برنامه ، یک زیر مجموعه با عنوان activity قرار داده شده است . حالا کد کات شده رو در زیر هر اکتیوتی که میخوایید اول اون اجرا بشه ، قرار بدید . همون طور که گغتم این روش رو تا به حال تست نکردم ولی یادم نمیاد کجا خوندمش . و من الله توفیق لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
سیدمحمد 248
سلام دوستان.
میخواستم بدونم میشه اکتیویتی main یا همون اکتیویتی اصلی رو تغییرداد؟
مثلا میخام برنامه با اکتیویتی دیگه ای غیر از اکتیویتی main شروع بشه
لینک ارسال
به اشتراک گذاری در سایت های دیگر
2 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.