উত্তর:
কথোপকথন হিসাবে ক্রিয়াকলাপ শুরু করার জন্য আমি এটি এর মধ্যে এটি সংজ্ঞায়িত করেছি AndroidManifest.xml
:
<activity android:theme="@android:style/Theme.Dialog" />
activity
আপনার ডায়ালগটি সম্প্রতি ব্যবহৃত অ্যাপ্লিকেশন তালিকায় উপস্থিত না থেকে বাঁচতে আপনার ট্যাগের অভ্যন্তরে এই সম্পত্তিটি ব্যবহার করুন
android:excludeFromRecents="true"
আপনি যদি ডায়ালগের বাইরে ব্যবহারকারী ক্লিক করেন তবে আপনার ডায়ালগ / ক্রিয়াকলাপ ধ্বংস হতে বাধা দিতে চান:
setContentView()
আপনার Activity
ব্যবহারের পরে :
this.setFinishOnTouchOutside(false);
এখন যখন আমি startActivity()
এটি ডায়ালগ হিসাবে প্রদর্শন করি তখন পূর্ববর্তী ক্রিয়াকলাপটি যখন ব্যবহারকারী পিছনের বোতামটি টিপায় তখন তা প্রদর্শিত হয়।
মনে রাখবেন যে আপনি যদি ActionBarActivity
(বা অ্যাপকম্প্যাট থিম) ব্যবহার করছেন তবে আপনার @style/Theme.AppCompat.Dialog
পরিবর্তে আপনাকে ব্যবহার করতে হবে।
@style/Theme.AppCompat.Dialog
this.setFinishOnTouchOutside(false);
পরে setContentView()
ক্রিয়াকলাপটি ধ্বংস হতে আটকাতে পদ্ধতির পরে যুক্ত করুন।
এই কোডটি ব্যবহার করুন যাতে ব্যবহারকারী ডায়লগ বাক্সের বাইরে স্পর্শ করলে ডায়ালগ ক্রিয়াকলাপটি বন্ধ না হয়:
this.setFinishOnTouchOutside(false);
এপিআই স্তর 11 প্রয়োজন
আপনি আরও প্রাক্তন স্প্ল্যাশ সম্পাদন করতে মান / শৈলী.এক্সএমএলে এই স্টাইলটি সংজ্ঞায়িত করতে পারেন:
<style name="Theme.UserDialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@drawable/trans</item>
</style>
এবং এটি অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ব্যবহার করুন:
<activity android:name=".SplashActivity"
android:configChanges="orientation"
android:screenOrientation="sensor"
android:theme="@style/Theme.UserDialog">
@drawable/trans
: আপনি ব্যাকগ্রাউন্ড হিসাবে ব্যবহার @android:color/transparent
করতে একটি তৈরি করতে পারে যা ব্যবহার করতে সক্ষম হওয়া উচিত ColorDrawable
।
1 - আপনি ডায়ালগ এবং পুরো স্ক্রিন উভয়ের মতোই ক্রিয়াকলাপটি গতিশীলভাবে ব্যবহার করতে পারেন:
কল setTheme(android.R.style.Theme_Dialog)
করার আগে setContentView(...)
এবং super.oncreate()
আপনার ক্রিয়াকলাপে কল করুন ।
2 - আপনি যদি কার্যকলাপ থিমের স্টাইলটি পরিবর্তন করতে চান না তবে আপনি ব্যবহার করতে পারেন
<activity android:theme="@android:style/Theme.Dialog" />
(@ ফয়সাল খান উল্লেখ করেছেন)
<activity android:theme="@android:style/Theme.Dialog" />
) এবং একটি ডায়ালগ বা একটি কার্যকলাপ কার্যকলাপের প্রোগ্রামেটিক্যালি সেট থিম onCreate মধ্যে stackoverflow.com/a/35915764/2898715
আপনার যদি অ্যাপকম্প্যাট সংস্করণ দরকার হয়
style.xml
<!-- Base application theme. -->
<style name="AppDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<!-- Customize your theme here. -->
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
yourmanifest.xml
<activity
android:name=".MyActivity"
android:label="@string/title"
android:theme="@style/AppDialogTheme">
</activity>
<item name="windowNoTitle">true</item>
এটা আমার জন্য কাজ করা। আমি <item name="android:windowActionBar">false</item>
ভাল পরিমাপ জন্য যোগ ।
<item name="android:windowNoTitle">true</item>
পক্ষে কাজ হয়নি (অ্যান্ড্রয়েড 5.0.1), এবং আমাকে পরিবর্তন করতে হয়েছিল<item name="windowNoTitle">true</item>
যদি আপনার ক্রিয়াকলাপটি একটি কথোপকথন হিসাবে রেন্ডার করা হয় তবে কেবল আপনার ক্রিয়াকলাপের এক্সএমএলে একটি বোতাম যুক্ত করুন,
<Button
android:id="@+id/close_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Dismiss" />
তারপরে আপনার ক্রিয়াকলাপের জাভা কোডে ক্লিক শ্রোতাদের সংযুক্ত করুন। শ্রোতার মধ্যে, কেবল কল করুনfinish()
Button close_button = (Button) findViewById(R.id.close_button);
close_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
এটি আপনাকে ডায়ালিং ক্রিয়াকলাপে ফিরিয়ে আপনার ডায়লগটি খারিজ করা উচিত।
আপনি যদি ক্রিয়াকলাপ শিরোলেখ অপসারণ করতে এবং কথোপকথনের জন্য একটি কাস্টম ভিউ সরবরাহ করতে চান তবে আপনার ক্রিয়াকলাপের ব্লকটিতে নিম্নলিখিতটি যুক্ত করুন
android:theme="@style/Base.Theme.AppCompat.Dialog"
এবং আপনার কাঙ্ক্ষিত দৃশ্যের সাথে আপনার ক্রিয়াকলাপটি_আউটআউট ডিজাইন করুন
আপনার অ্যান্ড্রয়েড মেনিফেস্ট ফাইলে থিমটি সেট করুন।
<activity android:name=".LoginActivity"
android:theme="@android:style/Theme.Dialog"/>
এবং শেষ করার জন্য সংলাপের স্থিতিতে স্পর্শে সেট করুন।
this.setFinishOnTouchOutside(false);
কথোপকথন হিসাবে ক্রিয়াকলাপ তৈরি করুন, এখানে সম্পূর্ণ উদাহরণ
AndroidManife.xml
<activity android:name=".appview.settings.view.DialogActivity" android:excludeFromRecents="true" android:theme="@style/Theme.AppCompat.Dialog"/>
DialogActivity.kt
class DialogActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_dialog)
this.setFinishOnTouchOutside(true)
btnOk.setOnClickListener {
finish()
}
}
}
activity_dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#0072ff"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="@dimen/_300sdp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/txtTitle"
style="@style/normal16Style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:text="Download"
android:textColorHint="#FFF" />
<View
android:id="@+id/viewDivider"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#fff"
android:backgroundTint="@color/white_90"
app:layout_constraintBottom_toBottomOf="@id/txtTitle" />
<TextView
style="@style/normal14Style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:text="Your file is download"
android:textColorHint="#FFF" />
<Button
android:id="@+id/btnOk"
style="@style/normal12Style"
android:layout_width="100dp"
android:layout_height="40dp"
android:layout_marginBottom="20dp"
android:background="@drawable/circle_corner_layout"
android:text="Ok"
android:textAllCaps="false" />
</LinearLayout>
</LinearLayout>
কিছু সময় আপনি নীচে প্রদত্ত ব্যতিক্রমটি পেতে পারেন
Java.lang.IllegalStateException দ্বারা সৃষ্ট: আপনার এই ক্রিয়াকলাপের সাথে থিম.অ্যাপকম্প্যাট থিম (বা বংশধর) ব্যবহার করা দরকার।
সমাধান করার জন্য আপনি সহজ সমাধান ব্যবহার করতে পারেন
অ্যাপকম্প্যাক্টের জন্য ডায়ালগ হিসাবে ম্যানিফেস্টে আপনার ক্রিয়াকলাপের থিম যুক্ত করুন।
android:theme="@style/Theme.AppCompat.Dialog"
এটি কারও পক্ষে সহায়ক হতে পারে।