मैं Android प्रोग्रामिंग के लिए नया हूँ। एंड्रॉइड पर कस्टम टोस्ट नोटिफिकेशन दिखाने वाला एक सरल उदाहरण क्या है?
मैं Android प्रोग्रामिंग के लिए नया हूँ। एंड्रॉइड पर कस्टम टोस्ट नोटिफिकेशन दिखाने वाला एक सरल उदाहरण क्या है?
जवाबों:
एक कस्टम टोस्ट के नीचे दिए गए कोड का उपयोग करें। यह आपकी मदद कर सकता है।
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:background="#DAAA" >
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="10dp" />
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textColor="#FFF" />
</LinearLayout>
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layout_root));
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello! This is a custom toast!");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
और एक कस्टम टोस्ट के लिए नीचे दिए गए लिंक भी देखें।
एक टोस्ट समय के छोटे अंतराल के लिए संदेश दिखाने के लिए है; इसलिए, मेरी समझ के अनुसार, आप इसमें छवि जोड़ने और संदेश पाठ का आकार, रंग बदलने के साथ इसे अनुकूलित करना चाहेंगे। यदि यह सब है, तो आप करना चाहते हैं, तो एक अलग लेआउट बनाने और इसे टोस्ट उदाहरण पर ले जाने की कोई आवश्यकता नहीं है।
डिफ़ॉल्ट टोस्ट के दृश्य में इस TextView
पर संदेश दिखाने के लिए है। इसलिए, यदि हमारे पास संसाधन आईडी संदर्भ है TextView
, तो हम इसके साथ खेल सकते हैं। तो नीचे आप इसे प्राप्त करने के लिए क्या कर सकते हैं:
Toast toast = Toast.makeText(this, "I am custom Toast!", Toast.LENGTH_LONG);
View toastView = toast.getView(); // This'll return the default View of the Toast.
/* And now you can get the TextView of the default View of the Toast. */
TextView toastMessage = (TextView) toastView.findViewById(android.R.id.message);
toastMessage.setTextSize(25);
toastMessage.setTextColor(Color.RED);
toastMessage.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_fly, 0, 0, 0);
toastMessage.setGravity(Gravity.CENTER);
toastMessage.setCompoundDrawablePadding(16);
toastView.setBackgroundColor(Color.CYAN);
toast.show();
उपरोक्त कोड में आप देख सकते हैं, आप TextView के माध्यम से setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)
जो भी आप चाहते हैं TextView के सापेक्ष छवि को जोड़ सकते हैं ।
अपडेट करें:
उपरोक्त उद्देश्य को सरल बनाने के लिए एक बिल्डर वर्ग लिखा है; यहां लिंक दिया गया है: https://gist.github.com/TheLittleNaruto/6fc8f6a2b0b0d0583a240bd78313ba83bc
HowToUse.kt
उपरोक्त लिंक में जाँच करें।
आउटपुट:
TextView
इसके लिए एक चेक होना चाहिए, बस सुरक्षित रहने के लिए और एक चेक से मेरा मतलब है कि एक शून्य चेक या एक प्रकार की जांच। बस मामले में, Google टोस्ट क्लास में टेक्स्ट दिखाने के लिए आईडी बदलने या देखने का फैसला करता है। वैसे भी ... +1
चरण 1:
पहले कस्टम टोस्ट के लिए एक लेआउट बनाएँ res/layout/custom_toast.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_layout_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFF"
android:orientation="horizontal"
android:padding="5dp" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />
</LinearLayout>
चरण 2: गतिविधि कोड में, उपरोक्त कस्टम दृश्य प्राप्त करें और टोस्ट से संलग्न करें:
// Get your custom_toast.xml ayout
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.custom_toast_layout_id));
// set a message
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Button is clicked!");
// Toast...
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
अधिक मदद के लिए देखें कि हम Android में कस्टम टोस्ट कैसे बनाते हैं:
http://developer.android.com/guide/topics/ui/notifiers/toasts.html
लिंक देखें यहाँ । तुम अपना उपाय खोजो। और कोशिश:
एक कस्टम टोस्ट दृश्य बनाना
यदि एक साधारण पाठ संदेश पर्याप्त नहीं है, तो आप अपने टोस्ट अधिसूचना के लिए एक अनुकूलित लेआउट बना सकते हैं। एक कस्टम लेआउट बनाने के लिए, XML या अपने एप्लिकेशन कोड में एक लेआउट देखें, परिभाषित करें और सेट व्यू (रूट) विधि में रूट व्यू ऑब्जेक्ट पास करें।
उदाहरण के लिए, आप स्क्रीनशॉट में दिखाई जाने वाली टोस्ट के लिए लेआउट को निम्न XML के साथ दाईं ओर बना सकते हैं (toast_layout.xml के रूप में सहेजा गया):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="#DAAA"
>
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
ध्यान दें कि LinearLayout तत्व की आईडी "toast_layout" है। आपको इस आईडी का उपयोग XML से लेआउट को बढ़ाने के लिए करना चाहिए, जैसा कि यहां दिखाया गया है:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layout_root));
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello! This is a custom toast!");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
सबसे पहले, getLayoutInflater () (या getSystemService ()) के साथ LayoutInflater को पुनः प्राप्त करें, और फिर XML से फ़्लो को फुलाकर (int, ViewGroup) का उपयोग करें। पहला पैरामीटर लेआउट संसाधन आईडी है और दूसरा रूट व्यू है। आप लेआउट में अधिक व्यू ऑब्जेक्ट खोजने के लिए इस फुलाए हुए लेआउट का उपयोग कर सकते हैं, इसलिए अब ImageView और TextView तत्वों के लिए सामग्री को कैप्चर करें और परिभाषित करें। अंत में, टोस्ट (संदर्भ) के साथ एक नया टोस्ट बनाएं और टोस्ट के कुछ गुणों को सेट करें, जैसे कि गुरुत्वाकर्षण और अवधि। फिर setView (देखें) को कॉल करें और इसे फुलाया हुआ लेआउट पास करें। अब आप शो () कॉल करके अपने कस्टम लेआउट के साथ टोस्ट प्रदर्शित कर सकते हैं।
नोट: जब तक आप सेटव्यू (व्यू) के साथ लेआउट को परिभाषित नहीं करने जा रहे हैं तब टोस्ट के लिए सार्वजनिक कंस्ट्रक्टर का उपयोग न करें। यदि आपके पास उपयोग करने के लिए कोई कस्टम लेआउट नहीं है, तो आपको टोस्ट बनाने के लिए makeText (Context, int, int) का उपयोग करना होगा।
टोस्ट के लिए कस्टम लेआउट custom_toast.xml
:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Custom Toast"
android:gravity="center"
android:id="@+id/custom_toast_text"
android:typeface="serif"
android:textStyle="bold"
/>
</LinearLayout>
और जावा विधि (बस इस विधि के लिए टोस्ट संदेश पास):
public void toast(String message)
{
Toast toast = new Toast(context);
View view = LayoutInflater.from(context).inflate(R.layout.image_custom, null);
TextView textView = (TextView) view.findViewById(R.id.custom_toast_text);
textView.setText(message);
toast.setView(view);
toast.setGravity(Gravity.BOTTOM|Gravity.CENTER, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
}
आप यहां कोड डाउनलोड कर सकते हैं ।
चरण 1:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<Button
android:id="@+id/btnCustomToast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Custom Toast" />
</RelativeLayout>
चरण 2:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/custom_toast_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/custom_toast_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My custom Toast Example Text" />
</LinearLayout>
चरण 3:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button btnCustomToast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCustomToast= (Button) findViewById(R.id.btnCustomToast);
btnCustomToast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Find custom toast example layout file
View layoutValue = LayoutInflater.from(MainActivity.this).inflate(R.layout.android_custom_toast_example, null);
// Creating the Toast object
Toast toast = new Toast(getApplicationContext());
toast.setDuration(Toast.LENGTH_SHORT);
// gravity, xOffset, yOffset
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setView(layoutValue);//setting the view of custom toast layout
toast.show();
}
});
}
}
मुझे लगता है कि पूरे इंटरनेट में अधिकांश एक्सटोलेस्ट एक्सएमएल-उदाहरण एक ही स्रोत पर आधारित हैं।
Android प्रलेखन, जो मेरी राय में बहुत पुराना है। fill_parent का अधिक उपयोग नहीं किया जाना चाहिए। मैं xml.9.png के साथ संयोजन में wra_content का उपयोग करना पसंद करता हूं। इस तरह आप प्रदान किए गए स्रोत के पूरे आकार के न्यूनतम आकार को निर्धारित कर सकते हैं।
यदि अधिक जटिल टोस्ट की आवश्यकता होती है, तो एलएल के बजाय फ्रेम या रिश्तेदार लेआउट का उपयोग किया जाना चाहिए।
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/points_layout"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:layout_gravity="center"
android:gravity="center" >
<TextView
android:id="@+id/points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_margin="15dp"
android:text="@+string/points_text"
android:textColor="@color/Green" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<nine-patch
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/background_96"
android:dither="true"/>
बैकग्राउंड_96 बैकग्राउंड_96.9.png है।
यह बहुत अच्छी तरह से परीक्षण नहीं किया गया है, और संकेत की सराहना की जाती है :)
लेआउट के साथ समस्याओं से बचने के लिए * * परम का उपयोग ठीक से नहीं किया जा रहा है, आपको यह सुनिश्चित करने की आवश्यकता है कि जब आप अपने कस्टम लेआउट को फुलाते हैं जो आप एक माता-पिता के रूप में एक सही व्यूग्रुप निर्दिष्ट करते हैं।
कई उदाहरण यहाँ अशक्त हैं, लेकिन इसके बजाय आप अपने माता-पिता के रूप में मौजूदा टोस्ट व्यूग्रुप को पारित कर सकते हैं।
val toast = Toast.makeText(this, "", Toast.LENGTH_LONG)
val layout = LayoutInflater.from(this).inflate(R.layout.view_custom_toast, toast.view.parent as? ViewGroup?)
toast.view = layout
toast.show()
यहां हम मौजूदा टोस्ट दृश्य को अपने कस्टम दृश्य के साथ बदलते हैं। एक बार जब आप अपने लेआउट "लेआउट" का संदर्भ लेते हैं, तो आप इसमें शामिल किसी भी चित्र / पाठ दृश्य को अपडेट कर सकते हैं।
यह समाधान माता-पिता के रूप में अशक्त उपयोग करने से किसी भी "विंडो प्रबंधक से जुड़ी नहीं देखें" दुर्घटनाओं को रोकता है।
इसके अलावा, अपने कस्टम लेआउट रूट के रूप में कांस्ट्रेन्डलैट का उपयोग करने से बचें, यह एक टोस्ट के अंदर उपयोग किए जाने पर काम नहीं करता है।
यही मैंने उपयोग किया है
public static Toast displayCustomToast(FragmentActivity mAct, String toastText, String toastLength, String succTypeColor) {
final Toast toast;
if (toastLength.equals("short")) {
toast = Toast.makeText(mAct, toastText, Toast.LENGTH_SHORT);
} else {
toast = Toast.makeText(mAct, toastText, Toast.LENGTH_LONG);
}
View tView = toast.getView();
tView.setBackgroundColor(Color.parseColor("#053a4d"));
TextView mText = (TextView) tView.findViewById(android.R.id.message);
mText.setTypeface(applyFont(mAct));
mText.setShadowLayer(0, 0, 0, 0);
tView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast.cancel();
}
});
tView.invalidate();
if (succTypeColor.equals("red")) {
mText.setTextColor(Color.parseColor("#debe33"));
tView.setBackground(mAct.getResources().getDrawable(R.drawable.toast_rounded_red));
// this is to show error message
}
if (succTypeColor.equals("green")) {
mText.setTextColor(Color.parseColor("#053a4d"));
tView.setBackground(mAct.getResources().getDrawable(R.drawable.toast_rounded_green));
// this is to show success message
}
return toast;
}
फोन करते समय बस नीचे लिखें।
AllMethodsInOne.displayCustomToast(act, "This is custom toast", "long", "red").show();
MainActivity.java फ़ाइल के लिए कोड।
package com.android_examples.com.toastbackgroundcolorchange;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button BT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BT = (Button)findViewById(R.id.button1);
BT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast ToastMessage = Toast.makeText(getApplicationContext(),"Change Toast Background color",Toast.LENGTH_SHORT);
View toastView = ToastMessage.getView();
toastView.setBackgroundResource(R.layout.toast_background_color);
ToastMessage.show();
}
});
}
}
Activity_main.xml लेआउट फ़ाइल के लिए कोड।
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.android_examples.com.toastbackgroundcolorchange.MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="CLICK HERE TO SHOW TOAST MESSAGE WITH DIFFERENT BACKGROUND COLOR INCLUDING BORDER" />
</RelativeLayout>
Res-> लेआउट फ़ोल्डर में बनाई गई toast_background_color.xml लेआउट फ़ाइल के लिए कोड।
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="3dp"
android:color="#ffffff" ></stroke>
<padding android:left="20dp" android:top="20dp"
android:right="20dp" android:bottom="20dp" />
<corners android:radius="10dp" />
<gradient android:startColor="#ff000f"
android:endColor="#ff0000"
android:angle="-90"/>
</shape>
// एक कस्टम टोस्ट वर्ग जहाँ आप कस्टम या डिफ़ॉल्ट टोस्ट को इच्छानुसार दिखा सकते हैं)
public class ToastMessage {
private Context context;
private static ToastMessage instance;
/**
* @param context
*/
private ToastMessage(Context context) {
this.context = context;
}
/**
* @param context
* @return
*/
public synchronized static ToastMessage getInstance(Context context) {
if (instance == null) {
instance = new ToastMessage(context);
}
return instance;
}
/**
* @param message
*/
public void showLongMessage(String message) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
/**
* @param message
*/
public void showSmallMessage(String message) {
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
/**
* The Toast displayed via this method will display it for short period of time
*
* @param message
*/
public void showLongCustomToast(String message) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
View layout = inflater.inflate(R.layout.layout_custom_toast, (ViewGroup) ((Activity) context).findViewById(R.id.ll_toast));
TextView msgTv = (TextView) layout.findViewById(R.id.tv_msg);
msgTv.setText(message);
Toast toast = new Toast(context);
toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
}
/**
* The toast displayed by this class will display it for long period of time
*
* @param message
*/
public void showSmallCustomToast(String message) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
View layout = inflater.inflate(R.layout.layout_custom_toast, (ViewGroup) ((Activity) context).findViewById(R.id.ll_toast));
TextView msgTv = (TextView) layout.findViewById(R.id.tv_msg);
msgTv.setText(message);
Toast toast = new Toast(context);
toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(layout);
toast.show();
}
}
टोस्ट को अनुकूलित करने का सरल तरीका,
private void MsgDisplay(String Msg, int Size, int Grav){
Toast toast = Toast.makeText(this, Msg, Toast.LENGTH_LONG);
TextView v = (TextView) toast.getView().findViewById(android.R.id.message);
v.setTextColor(Color.rgb(241, 196, 15));
v.setTextSize(Size);
v.setGravity(Gravity.CENTER);
v.setShadowLayer(1.5f, -1, 1, Color.BLACK);
if(Grav == 1){
toast.setGravity(Gravity.BOTTOM, 0, 120);
}else{
toast.setGravity(Gravity.BOTTOM, 0, 10);
}
toast.show();
}
सभी कोटलिन उपयोगकर्ताओं के लिए
आप निम्नलिखित की तरह एक एक्सटेंशन बना सकते हैं:
fun FragmentActivity.showCustomToast(message : String,color : Int) {
val toastView = findViewById<TextView>(R.id.toast_view)
toastView.text = message
toastView.visibility = View.VISIBLE
toastView.setBackgroundColor(color)
// create a daemon thread
val timer = Timer("schedule", true)
// schedule a single event
timer.schedule(2000) {
runOnUiThread { toastView.visibility = View.GONE }
}
}
हमारा अपना रिवाज बनाना बहुत सरल है Toast
।
बस नीचे दिए गए चरणों का पालन करें।
चरण 1
कस्टम लेआउट बनाएं जिसे आप चाहते हैं
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/black"
android:orientation="vertical"
android:padding="@dimen/size_10dp"
app:cardCornerRadius="@dimen/size_8dp"
app:cardElevation="@dimen/size_8dp">
<TextView
android:id="@+id/txt_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/size_12dp"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="@dimen/text_size_16sp"
tools:text="Hello Test!!" />
</androidx.cardview.widget.CardView>
चरण 2
अब कस्टम क्लास बनाएं जो इसके साथ फैली हो Toast
।
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.shop.shoppinggare.R;
import org.apache.commons.lang3.StringUtils;
import org.w3c.dom.Text;
public class CustomToast extends Toast {
private Context context;
private String message;
public CustomToast(Context context, String message) {
super(context);
this.context = context;
this.message = message;
View view = LayoutInflater.from(context).inflate(R.layout.toast_custom, null);
TextView txtMsg = view.findViewById(R.id.txt_message);
txtMsg.setText(StringUtils.capitalize(message));
setView(view);
setDuration(Toast.LENGTH_LONG);
}
}
हमने कस्टम टोस्ट बनाया है।
चरण 3
अब, आखिरकार, हम इसका उपयोग कैसे कर सकते हैं।
new CustomToast(contex,"message").show();
का आनंद लें!!
पृष्ठभूमि से कस्टम टोट्स अवरुद्ध हैं, एंड्रॉइड 11 कस्टम टोस्ट विचारों को चित्रित करके उपयोगकर्ताओं की सुरक्षा करता है। सुरक्षा कारणों से और एक अच्छा उपयोगकर्ता अनुभव बनाए रखने के लिए, सिस्टम टोस्ट को ब्लॉक करता है जिसमें कस्टम दृश्य होते हैं यदि उन टोस्ट को पृष्ठभूमि से एक ऐप द्वारा भेजा जाता है जो एंड्रॉइड 11 को लक्षित करता है।
एंड्रॉइड R में addCallback () विधि जोड़ा गया है यदि आप टोस्ट (पाठ या कस्टम) प्रकट होने या गायब होने पर सूचित किया जाना चाहते हैं।
टोस्ट एपीआई के सबसे महत्वपूर्ण पाठ में परिवर्तन होता है उन ऐप्स के लिए है जो एंड्रॉइड 11 को लक्षितgetView()
करते हैं, जब आप इसे एक्सेस करते हैं, तो विधि शून्य हो जाती है, इसलिए, अपने एप्लिकेशन को FATAL EXCEPTION से सुरक्षित रखना सुनिश्चित करें, आपको पता है कि मेरा क्या मतलब है :)
टोस्टी नाम की इस लाइब्रेरी का उपयोग करने से मुझे लगता है कि आपके पास निम्नलिखित दृष्टिकोण से अनुकूलित टोस्ट बनाने के लिए पर्याप्त लचीलापन है -
Toasty.custom(yourContext, "I'm a custom Toast", yourIconDrawable, tintColor, duration, withIcon,
shouldTint).show();
तुम भी टोस्ट को स्वरूपित पाठ पास कर सकते हैं और यहाँ कोड स्निपेट है
val inflater = layoutInflater
val container: ViewGroup = findViewById(R.id.custom_toast_container)
val layout: ViewGroup = inflater.inflate(R.layout.custom_toast, container)
val text: TextView = layout.findViewById(R.id.text)
text.text = "This is a custom toast"
with (Toast(applicationContext)) {
setGravity(Gravity.CENTER_VERTICAL, 0, 0)
duration = Toast.LENGTH_LONG
view = layout
show()
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_container"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#DAAA"
>
<ImageView android:src="@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
/>
</LinearLayout>
संदर्भ: https://developer.android.com/guide/topics/ui/notifiers/toasts