విషయము
- Android కోసం విడ్జెట్లు ఏమిటి?
- నా ప్రాజెక్ట్కు నిజంగా అప్లికేషన్ విడ్జెట్ అవసరమా?
- Android కోసం విడ్జెట్లు వినియోగదారు అనుభవాన్ని మెరుగుపరుస్తాయి
- అనువర్తన సత్వరమార్గాల కంటే శక్తివంతమైనది
- దీర్ఘకాలిక నిశ్చితార్థాన్ని నడపడానికి Android విడ్జెట్ను సృష్టించండి
- సేకరణ అనువర్తన విడ్జెట్ను సృష్టిస్తోంది
- మీ విడ్జెట్ యొక్క లేఅవుట్ను నిర్మించడం
- సేకరణ విడ్జెట్ జనాభా
- AppWidgetProvider: మీ విడ్జెట్ను కాన్ఫిగర్ చేస్తోంది
- అడాప్టర్ను సృష్టించండి
- విడ్జెట్ జీవితచక్ర పద్ధతులను నిర్వచించడం
- OnUpdate తో క్రొత్త కంటెంట్ను తిరిగి పొందడం
- onEnabled: ప్రారంభ సెటప్ చేస్తోంది
- OnDisabled తో శుభ్రం
- పూర్తయిన AppWidgetProvider
- AppWidgetProviderInfo ఫైల్
- 1. ఆండ్రాయిడ్: ప్రివ్యూ ఇమేజ్
- 2. Android: widgetCategory
- 3. Android: initialLayout
- 4. android: resizeMode = ”క్షితిజ సమాంతర | నిలువు”
- 5. Android: minHeight మరియు Android: minWidth
- 6. Android: updatePeriodMillis
- పూర్తయిన AppWidgetProviderInfo
- యూజర్ హోమ్స్క్రీన్ను అస్తవ్యస్తం చేయవద్దు!
- విడ్జెట్కు డేటాను పంపుతోంది
- మీ విడ్జెట్ను మానిఫెస్ట్లో నమోదు చేస్తోంది
- మీ విడ్జెట్ను పరీక్షకు ఉంచండి
- Android విడ్జెట్ ప్రివ్యూ చిత్రాన్ని సృష్టిస్తోంది
- అనుకూలీకరించదగిన విడ్జెట్లు: కాన్ఫిగరేషన్ కార్యాచరణను కలుపుతోంది
- కాన్ఫిగరేషన్ కార్యాచరణను సృష్టించండి
- మీ ప్రాజెక్ట్ను పరీక్షిస్తోంది
- చుట్టి వేయు
OS యొక్క ప్రారంభ రోజుల నుండి, Android కోసం విడ్జెట్లు వినియోగదారులను వారి హోమ్స్క్రీన్ సౌలభ్యం నుండి తమ అభిమాన అనువర్తనాలతో నిమగ్నం చేయడానికి అనుమతించాయి. కాబట్టి మీరు Android విడ్జెట్ను ఎలా సృష్టిస్తారు?
డెవలపర్ కోసం, విడ్జెట్లు మీ అనువర్తనానికి యూజర్ హోమ్స్క్రీన్లో విలువైన ఉనికిని ఇస్తాయి. అనువర్తన డ్రాయర్లో కనిపించకుండా ఉండటానికి బదులుగా, మీ అనువర్తనం గురించి వినియోగదారులకు గుర్తు చేయబడుతుంది ప్రతి సమయం వారు వారి హోమ్స్క్రీన్ను చూస్తారు - మీ అనువర్తనం యొక్క అత్యంత ఆసక్తికరమైన మరియు ఉపయోగకరమైన కంటెంట్ యొక్క ప్రివ్యూను కూడా పొందుతారు.
విడ్జెట్లు మీ అనువర్తనానికి యూజర్ హోమ్స్క్రీన్లో విలువైన ఉనికిని ఇస్తాయి
ఈ వ్యాసంలో, Android విడ్జెట్ను సృష్టించడం ద్వారా మీ అనువర్తనంతో సన్నిహితంగా ఉండటానికి వినియోగదారులను ప్రోత్సహిస్తూ మెరుగైన వినియోగదారు అనుభవాన్ని ఎలా అందించాలో నేను మీకు చూపిస్తాను! ఈ వ్యాసం ముగిసే సమయానికి, మీరు వినియోగదారు హోమ్స్క్రీన్లో పూర్తి డేటా సెట్ను ప్రదర్శించే స్క్రోల్ చేయదగిన సేకరణ విడ్జెట్ను సృష్టించారు.
మీరు వినియోగదారులు అందించే విడ్జెట్ను పంపిణీ చేస్తున్నారని నిర్ధారించుకోవడానికి కావలసిన వారి హోమ్స్క్రీన్లో ఉంచడానికి, మేము కాన్ఫిగరేషన్ కార్యాచరణను కూడా సృష్టిస్తాము, ఇది విడ్జెట్ యొక్క కంటెంట్, ప్రదర్శన మరియు లక్షణాలను అనుకూలీకరించడానికి వినియోగదారులను అనుమతిస్తుంది. చివరగా, మీ విడ్జెట్ అందించే ఉత్తమమైన వాటిని ప్రదర్శించే విడ్జెట్ ప్రివ్యూ చిత్రాన్ని సృష్టించడం ద్వారా మీ విడ్జెట్ను ఉపయోగించమని మీరు ప్రజలను ఎలా ప్రోత్సహించవచ్చో నేను చూపిస్తాను.
ఇవి కూడా చదవండి: ఫోల్డబుల్ పరికరాల కోసం అభివృద్ధి చేయడం: మీరు తెలుసుకోవలసినది
Android కోసం విడ్జెట్లు ఏమిటి?
అనువర్తన విడ్జెట్ అనేది వినియోగదారుల హోమ్స్క్రీన్లో నివసించే తేలికైన, సూక్ష్మ అనువర్తనం.
Android కోసం విడ్జెట్లు కంటెంట్ పరిధిని అందించగలవు, కాని సాధారణంగా ఈ క్రింది వర్గాలలో ఒకటిగా వస్తాయి:
- సమాచార విడ్జెట్. ఇది స్క్రోల్ చేయలేని విడ్జెట్, ఇది నేటి వాతావరణ సూచన లేదా తేదీ మరియు సమయం వంటి కొంత సమాచారాన్ని ప్రదర్శిస్తుంది.
- సేకరణ విడ్జెట్లు. ఇది స్క్రోల్ చేయదగిన విడ్జెట్, ఇది జాబితా వీక్షణ, గ్రిడ్ వ్యూ, స్టాక్ వ్యూ లేదా అడాప్టర్ వ్యూఫ్లిప్పర్గా ఫార్మాట్ చేయబడిన సంబంధిత డేటా సమితిని ప్రదర్శిస్తుంది. సేకరణ విడ్జెట్లను సాధారణంగా డేటాబేస్ లేదా అర్రే వంటి డేటా సోర్స్ మద్దతు ఇస్తుంది.
- విడ్జెట్లను నియంత్రించండి. ఈ విడ్జెట్లు రిమోట్ కంట్రోల్గా పనిచేస్తాయి, ఇది మీ అనువర్తనంతో ఇంటరాక్ట్ అవ్వడానికి వినియోగదారులను అనుమతిస్తుంది, లేకుండా దానిని ముందు వైపుకు తీసుకురావడం. పాడ్కాస్ట్లు లేదా సంగీతం వంటి మీడియాను ప్లే చేసే అనువర్తనాలు తరచుగా నియంత్రణ విడ్జెట్లను కలిగి ఉంటాయి, ఇవి వినియోగదారుని వారి హోమ్స్క్రీన్ నుండి నేరుగా ప్లే, పాజ్ మరియు చర్యలను ప్రారంభించటానికి అనుమతిస్తాయి.
- హైబ్రిడ్ విడ్జెట్స్. కొన్నిసార్లు మీరు బహుళ వర్గాల మూలకాలను కలపడం ద్వారా మంచి వినియోగదారు అనుభవాన్ని అందించగలుగుతారు. ఉదాహరణకు, మీరు సంగీత అనువర్తనం కోసం నియంత్రణ విడ్జెట్ను అభివృద్ధి చేస్తుంటే, మీరు ప్లే, పాజ్ మరియు స్కిప్ నియంత్రణలను అందించవచ్చు, కానీ మీరు పాట యొక్క శీర్షిక మరియు కళాకారుడు వంటి కొంత సమాచారాన్ని ప్రదర్శించాలని కూడా నిర్ణయించుకోవచ్చు. మీరు కలపాలి మరియు సరిపోల్చాలని నిర్ణయించుకుంటే, అప్పుడు దూరంగా ఉండకండి! విడ్జెట్లు తక్కువ సమయం, సంబంధిత సమాచారం లేదా సాధారణంగా ఉపయోగించే కొన్ని లక్షణాలకు సులభంగా ప్రాప్యతను అందించినప్పుడు ఉత్తమ వినియోగదారు అనుభవాన్ని అందిస్తాయి. మీ హైబ్రిడ్ విడ్జెట్లను తేలికగా ఉంచడంలో సహాయపడటానికి, మీ విడ్జెట్ యొక్క ప్రాధమిక వర్గాన్ని గుర్తించి, ఆ వర్గానికి అనుగుణంగా అభివృద్ధి చేయాలని మరియు అప్పుడు విడ్జెట్ యొక్క ద్వితీయ వర్గం నుండి కొన్ని అంశాలను జోడించండి.
నా ప్రాజెక్ట్కు నిజంగా అప్లికేషన్ విడ్జెట్ అవసరమా?
మీ Android ప్రాజెక్ట్కు అనువర్తన విడ్జెట్ను జోడించడాన్ని మీరు పరిగణించాల్సిన అనేక కారణాలు ఉన్నాయి.
Android కోసం విడ్జెట్లు వినియోగదారు అనుభవాన్ని మెరుగుపరుస్తాయి
సాధారణ నియమం ప్రకారం, ఒక పనిని పూర్తి చేయడానికి తక్కువ నావిగేషనల్ దశలు అవసరమవుతాయి, వినియోగదారు అనుభవం మెరుగ్గా ఉంటుంది.
అనువర్తన విడ్జెట్ను అందించడం ద్వారా, మీరు మీ అనువర్తనం ఎక్కువగా ఉపయోగించే ప్రవాహాల నుండి బహుళ నావిగేషనల్ దశలను తొలగించవచ్చు. ఉత్తమ సందర్భంలో, మీ వినియోగదారులు వారి హోమ్స్క్రీన్ను చూడటం ద్వారా వారికి అవసరమైన సమాచారాన్ని పొందగలుగుతారు లేదా మీ నియంత్రణ విడ్జెట్లోని బటన్ను నొక్కడం ద్వారా కావలసిన పనిని చేయవచ్చు.
అనువర్తన సత్వరమార్గాల కంటే శక్తివంతమైనది
అనువర్తన సత్వరమార్గం మాదిరిగానే అనుబంధ అనువర్తనంలో ఉన్నత స్థాయిని ప్రారంభించడం ద్వారా అనువర్తన విడ్జెట్లు తరచుగా ఆన్క్లిక్ ఈవెంట్లకు ప్రతిస్పందిస్తాయి. ఏదేమైనా, విడ్జెట్లు అనువర్తనంలోని నిర్దిష్ట కార్యాచరణలకు ప్రత్యక్ష ప్రాప్యతను కూడా అందించగలవు, ఉదాహరణకు విడ్జెట్ యొక్క క్రొత్త స్వీకరించిన నోటిఫికేషన్ను నొక్కడం ఇప్పటికే తెరిచిన క్రొత్తతో అనుబంధ అనువర్తనాన్ని ప్రారంభించవచ్చు.
మీ విడ్జెట్ యొక్క లేఅవుట్లో బహుళ లింక్లను పొందుపరచడం ద్వారా, మీరు మీ అనువర్తనం యొక్క అన్ని ముఖ్యమైన కార్యాచరణలకు ఒక-ట్యాప్ ప్రాప్యతను అందించవచ్చు, మీరు సాధారణంగా ఉపయోగించే ప్రవాహాల నుండి మరింత నావిగేషనల్ దశలను తొలగిస్తారు.
మీ విడ్జెట్ యొక్క లేఅవుట్లో బహుళ లింక్లను పొందుపరచడం ద్వారా, మీరు మీ అనువర్తనం యొక్క అన్ని ముఖ్యమైన కార్యాచరణలకు ఒక-ట్యాప్ ప్రాప్యతను అందించవచ్చు.
విడ్జెట్లు ఆన్క్లిక్ ఈవెంట్లకు మాత్రమే ప్రతిస్పందిస్తాయని గమనించండి, ఇది వినియోగదారులు హోమ్స్క్రీన్ చుట్టూ స్వైప్ చేస్తున్నప్పుడు అనుకోకుండా మీ విడ్జెట్తో సంభాషించకుండా నిరోధిస్తుంది. మీ విడ్జెట్ను వారి హోమ్స్క్రీన్ తొలగించు చర్య వైపుకు లాగడం ద్వారా వినియోగదారు దాన్ని తొలగించడానికి ప్రయత్నిస్తున్నప్పుడు మాత్రమే మినహాయింపు, ఈ సందర్భంలో మీ విడ్జెట్ నిలువు స్వైప్ సంజ్ఞకు ప్రతిస్పందిస్తుంది.
ఈ పరస్పర చర్య Android సిస్టమ్ చేత నిర్వహించబడుతుంది, కాబట్టి మీ విడ్జెట్లో నిలువు స్వైప్ మద్దతును మాన్యువల్గా అమలు చేయడం గురించి మీరు ఆందోళన చెందాల్సిన అవసరం లేదు.
దీర్ఘకాలిక నిశ్చితార్థాన్ని నడపడానికి Android విడ్జెట్ను సృష్టించండి
మీ అనువర్తనాన్ని డౌన్లోడ్ చేయమని ప్రజలను ఒప్పించడం విజయవంతమైన Android అనువర్తనాన్ని సృష్టించడానికి మొదటి దశ మాత్రమే. అవకాశాలు, మీరు మీ స్వంత Android స్మార్ట్ఫోన్ లేదా టాబ్లెట్ను పట్టుకుని, అనువర్తన డ్రాయర్ ద్వారా స్వైప్ చేస్తే, మీరు రోజులు, వారాలు లేదా నెలల్లో కూడా ఉపయోగించని బహుళ అనువర్తనాలను మీరు కనుగొంటారు!
ఇవి కూడా చదవండి:Android SDK కోసం Facebook తో ప్రారంభించడం
వినియోగదారు యొక్క పరికరంలో మీ అనువర్తనం విజయవంతంగా ఇన్స్టాల్ చేయబడిన తర్వాత, వాటిని నిశ్చితార్థం చేసుకోవడానికి మరియు మీ అనువర్తనాన్ని ఆస్వాదించడానికి మీరు చాలా కష్టపడాలి. మీ అనువర్తనం హోమ్స్క్రీన్లో ఉనికిని ఇవ్వడం దీర్ఘకాలిక నిశ్చితార్థాన్ని నడిపించడంలో సహాయపడే శక్తివంతమైన సాధనం, ఎందుకంటే ఇది మీ అప్లికేషన్ ఉనికిలో ఉందని నిరంతరం గుర్తు చేస్తుంది!
బాగా రూపొందించిన విడ్జెట్ మీ అనువర్తనం కోసం కొనసాగుతున్న ప్రకటనగా కూడా ఉపయోగపడుతుంది. వినియోగదారు వారి హోమ్స్క్రీన్ను చూసిన ప్రతిసారీ, మీ అనువర్తనం యొక్క అత్యంత ఆసక్తికరమైన మరియు ఉపయోగకరమైన కంటెంట్తో వాటిని ప్రదర్శించడం ద్వారా, మీ అనువర్తనంతో తిరిగి పాల్గొనడానికి వారిని చురుకుగా ప్రోత్సహించే అవకాశం మీ విడ్జెట్కు ఉంది.
సేకరణ అనువర్తన విడ్జెట్ను సృష్టిస్తోంది
ఈ ట్యుటోరియల్లో, మేము శ్రేణిని స్క్రోల్ చేయదగిన జాబితా వీక్షణగా ప్రదర్శించే సేకరణ విడ్జెట్ను నిర్మిస్తాము.
అనువర్తన విడ్జెట్ జీవితచక్రాన్ని ట్రాక్ చేయడంలో మీకు సహాయపడటానికి, ఈ విడ్జెట్ వివిధ జీవితచక్ర స్థితుల ద్వారా కదులుతున్నప్పుడు వివిధ అభినందించి త్రాగుటను కూడా ప్రేరేపిస్తుంది. ఈ ట్యుటోరియల్ చివరలో, మేము మా విడ్జెట్ను Android యొక్క విడ్జెట్ పిక్కర్లో ప్రదర్శించబడే కస్టమ్ ప్రివ్యూ ఇమేజ్తో మరియు కాన్ఫిగరేషన్ కార్యాచరణతో మెరుగుపరుస్తాము, ఇది వినియోగదారులను వారి హోమ్స్క్రీన్లో ఉంచే ముందు విడ్జెట్ను అనుకూలీకరించడానికి అనుమతిస్తుంది.
మీకు నచ్చిన సెట్టింగ్లతో క్రొత్త Android ప్రాజెక్ట్ను సృష్టించండి మరియు ప్రారంభిద్దాం!
మీ విడ్జెట్ యొక్క లేఅవుట్ను నిర్మించడం
ప్రారంభించడానికి, విడ్జెట్ యొక్క వినియోగదారు ఇంటర్ఫేస్ (UI) ని నిర్వచించండి.
అనువర్తన విడ్జెట్లు ఒక ప్రక్రియలో ప్రదర్శించబడతాయి బయట మీ అనువర్తనం, కాబట్టి మీరు రిమోట్ వ్యూస్ చేత మద్దతిచ్చే లేఅవుట్లు మరియు వీక్షణలను మాత్రమే ఉపయోగించవచ్చు.
మీ లేఅవుట్ను నిర్మించేటప్పుడు, మీరు ఈ క్రింది వాటికి పరిమితం చేయబడ్డారు:
- AnalogClock
- బటన్
- క్రోనోమీటర్
- FrameLayout
- GridLayout
- ImageButton
- ImageView
- LinearLayout
- progressbar
- RelativeLayout
- TextView
- ViewStub
- AdapterViewFlipper
- సమాంతరరేఖాచట్ర దృశ్యము
- ListView
- StackView
- ViewFlipper
పై తరగతులు మరియు వీక్షణల యొక్క ఉపవర్గాలు గమనించండి కాదు మద్దతు.
List_widget.xml పేరుతో కొత్త లేఅవుట్ వనరుల ఫైల్ను సృష్టించండి. మేము జాబితా వీక్షణను ఉపయోగించి మా డేటాను ప్రదర్శిస్తాము కాబట్టి, ఈ లేఅవుట్ ప్రధానంగా a కోసం కంటైనర్గా పనిచేస్తుంది తరువాత, మేము మా జాబితా వీక్షణ కోసం డేటా ప్రొవైడర్ను సృష్టించాలి. DataProvider.java పేరుతో కొత్త జావా క్లాస్ని సృష్టించండి మరియు కింది వాటిని జోడించండి: android.content.Context దిగుమతి; android.content.Intent దిగుమతి; android.widget.RemoteViews దిగుమతి; android.widget.RemoteViewsService దిగుమతి; దిగుమతి java.util.ArrayList; దిగుమతి java.util.List; స్టాటిక్ android.R.id.text1 ను దిగుమతి చేయండి; స్టాటిక్ android.R.layout.simple_list_item_1 ను దిగుమతి చేయండి; పబ్లిక్ క్లాస్ డేటాప్రోవైడర్ రిమోట్ వ్యూస్ సర్వీసును అమలు చేస్తుంది. రిమోట్ వ్యూస్ఫ్యాక్టరీ {జాబితా Android విడ్జెట్ సృష్టించడానికి, మీరు అనేక ఫైళ్ళను సృష్టించాలి. మా మొట్టమొదటి విడ్జెట్-నిర్దిష్ట ఫైల్ ఒక AppWidgetProvider, ఇది మీ విడ్జెట్ మొదట సృష్టించబడినప్పుడు పిలువబడే పద్ధతి మరియు ఆ విడ్జెట్ చివరికి తొలగించబడినప్పుడు పిలువబడే వివిధ విడ్జెట్ జీవితచక్ర పద్ధతులను మీరు నిర్వచించే బ్రాడ్కాస్ట్ రిసీవర్. కలెక్షన్ విడ్జెట్ పేరుతో కొత్త జావా క్లాస్ (ఫైల్> న్యూ> జావా క్లాస్) ను సృష్టించండి. ప్రారంభించడానికి, అన్ని విడ్జెట్ ప్రొవైడర్ ఫైళ్లు AppWidgetProvider క్లాస్ నుండి విస్తరించాలి. అప్పుడు మేము list_widget.xml లేఅవుట్ రిసోర్స్ ఫైల్ను రిమోట్ వ్యూస్ ఆబ్జెక్ట్లోకి లోడ్ చేయాలి మరియు నవీకరించబడిన రిమోట్ వ్యూస్ ఆబ్జెక్ట్ గురించి AppWidgetManager కు తెలియజేయాలి: పబ్లిక్ క్లాస్ కలెక్షన్ విడ్జెట్ AppWidgetProvider ని విస్తరిస్తుంది {స్టాటిక్ శూన్య నవీకరణఅప్విడ్జెట్ (సందర్భం సందర్భం, AppWidgetManager appWidgetManager, int appWidgetId) {// రిమోట్ వ్యూస్ ఆబ్జెక్ట్ను ఇన్స్టాంటియేట్ చేయండి // రిమోట్ వ్యూస్ వ్యూస్ = కొత్త రిమోట్ వ్యూస్ (context.getPackageName (), R.lay. setRemoteAdapter (సందర్భం, వీక్షణలు); // AppWidgetManager అప్లికేషన్ విడ్జెట్ను అప్డేట్ చేయమని అభ్యర్థించండి // appWidgetManager.updateAppWidget (appWidgetId, views); } మేము మా డేటాను జాబితా వీక్షణలో ప్రదర్శిస్తున్నందున, మన AppWidgetProvider లో setRemoteAdapter () పద్ధతిని నిర్వచించాలి. SetRemoteAdapter () AbsListView.setRemoteViewsAdapter () అని పిలవడానికి సమానం కాని ఇది అప్లికేషన్ విడ్జెట్లలో ఉపయోగించటానికి రూపొందించబడింది. ఈ పద్ధతిలో, మేము అడాప్టర్ వ్యూ (R.id.widget_list) యొక్క ఐడిని మరియు చివరికి మా రిమోట్ వ్యూస్అడాప్టర్కు డేటాను అందించే సేవ యొక్క ఉద్దేశ్యాన్ని నిర్వచించాల్సిన అవసరం ఉంది - మేము త్వరలోనే ఈ విడ్జెట్సర్వీస్ క్లాస్ని సృష్టిస్తాము. ప్రైవేట్ స్టాటిక్ శూన్య సెట్ రిమోట్అడాప్టర్ (సందర్భ సందర్భం, onNonNull ఫైనల్ రిమోట్ వ్యూస్ వ్యూస్) {views.setRemoteAdapter (R.id.widget_list, new Intent (context, WidgetService.class)); }} మా AppWidgetProvider లో, మేము ఈ క్రింది విడ్జెట్ జీవితచక్ర పద్ధతులను కూడా నిర్వచించాలి: మీ అప్డేట్ () విడ్జెట్ జీవితచక్ర పద్ధతి మీ విడ్జెట్ యొక్క వీక్షణలను క్రొత్త సమాచారంతో నవీకరించడానికి బాధ్యత వహిస్తుంది. ఈ పద్ధతిని ప్రతిసారీ అంటారు: మీ విడ్జెట్ ఉపయోగించాల్సిన ఏదైనా ఈవెంట్ హ్యాండ్లర్లను మీరు ఇక్కడ నమోదు చేస్తారు. Android విడ్జెట్ను నవీకరించేటప్పుడు, వినియోగదారులు ఒకే విడ్జెట్ యొక్క బహుళ సందర్భాలను సృష్టించగలరని గుర్తుంచుకోవడం ముఖ్యం. ఉదాహరణకు, మీ విడ్జెట్ అనుకూలీకరించదగినది మరియు వినియోగదారు వేర్వేరు సమాచారాన్ని ప్రదర్శించే అనేక “సంస్కరణలను” సృష్టించాలని నిర్ణయించుకుంటారు లేదా ప్రత్యేకమైన కార్యాచరణకు ప్రాప్యతను అందిస్తారు. మీరు అప్డేట్ () కు కాల్ చేసినప్పుడు, మీరు ఈ విడ్జెట్ యొక్క ప్రతి ఉదాహరణను అప్డేట్ చేస్తున్నారా లేదా ఒక నిర్దిష్ట ఉదాహరణ మాత్రమే అని పేర్కొనాలి. మీరు ప్రతి ఉదాహరణను నవీకరించాలనుకుంటే, మీరు appWidgetIds ను ఉపయోగించవచ్చు, ఇది పరికరంలోని ప్రతి ఉదాహరణను గుర్తించే ID ల శ్రేణి. కింది స్నిప్పెట్లో, నేను ప్రతి ఉదాహరణను నవీకరిస్తున్నాను: Int (int appWidgetId: appWidgetIds) {కోసం public // పబ్లిక్ శూన్యత అప్డేట్ (సందర్భోచిత సందర్భం, AppWidgetManager appWidgetManager, int appWidgetIds) {// ఈ విడ్జెట్ యొక్క అన్ని సందర్భాలను నవీకరించండి // updateAppWidget (సందర్భం, appWidgetManager, appWidgetId); } super.onUpdate (సందర్భం, appWidgetManager, appWidgetIds); } కోడ్ను సూటిగా ఉంచడంలో సహాయపడటానికి, ఈ అప్డేట్ () పద్ధతి ప్రస్తుతం విడ్జెట్లో ఎటువంటి మార్పులు చేయలేదు. ACTION_APPWIDGET_ENABLED కు ప్రతిస్పందనగా ఆన్ ఎనేబుల్ () జీవితచక్ర పద్ధతి పిలువబడుతుంది, ఇది మీ విడ్జెట్ యొక్క ఉదాహరణను హోమ్స్క్రీన్కు జోడించినప్పుడు పంపబడుతుంది. ప్రధమ సమయం. వినియోగదారు మీ విడ్జెట్ యొక్క రెండు సందర్భాలను సృష్టించినట్లయితే, మొదటి ఉదాహరణ కోసం onEnabled () పిలువబడుతుంది, కానీ కాదు రెండవ కోసం. మీ విడ్జెట్ సమాచారాన్ని పోషించే డేటాబేస్ను సృష్టించడం వంటి మీ విడ్జెట్ యొక్క అన్ని సందర్భాలకు అవసరమైన ఏదైనా సెటప్ను మీరు చేయాల్సిన చోట ఆన్ ఎనేబుల్డ్ () జీవితచక్ర పద్ధతి. నేను అభినందించి త్రాగుటను ప్రదర్శించబోతున్నాను, కాబట్టి ఈ జీవితచక్ర పద్ధతిని ఎప్పుడు పిలుస్తారో మీరు ఖచ్చితంగా చూడవచ్చు: Public పబ్లిక్ శూన్యత ఆన్ ఎనేబుల్ (కాంటెక్స్ట్ కాంటెక్స్ట్) {టోస్ట్.మేక్ టెక్స్ట్ (కాంటెక్స్ట్, "ఆన్ ఎనేబుల్డ్ అంటారు", టోస్ట్. LENGTH_LONG) .షో (); } వినియోగదారు మీ విడ్జెట్ యొక్క అన్ని సందర్భాలను తొలగించి, క్రొత్త ఉదాహరణను సృష్టిస్తే, ఇది మొదటి ఉదాహరణగా వర్గీకరించబడుతుంది మరియు ఆన్ ఎనేబుల్డ్ () జీవితచక్ర పద్ధతి మరోసారి పిలువబడుతుంది. ACTION_APPWIDGET_DISABLED కు ప్రతిస్పందనగా onDisabled () పద్ధతిని పిలుస్తారు, ఇది వినియోగదారు తొలగించినప్పుడు ప్రేరేపించబడుతుంది గత మీ విడ్జెట్ యొక్క ఉదాహరణ. ఈ విడ్జెట్ జీవితచక్ర పద్ధతి ఏమిటంటే, మీరు ఆన్ ఎనేబుల్డ్ () పద్ధతిలో మీరు సృష్టించిన వనరులను శుభ్రపరచాలి, ఉదాహరణకు మీరు ఆన్ ఎనేబుల్ () లో సృష్టించిన డేటాబేస్ను తొలగించడం. మా కోడ్ను సూటిగా ఉంచడంలో సహాయపడటానికి, ఈ పద్ధతి ప్రేరేపించబడిన ప్రతిసారీ నేను అభినందించి త్రాగుటను ప్రదర్శిస్తాను: DisOstride public void onDisabled (సందర్భ సందర్భం) {Toast.makeText (సందర్భం, "onDisabled called", Toast.LENGTH_LONG) .షో (); } మీ కలెక్షన్ విడ్జెట్ ఫైల్ ఇప్పుడు ఇలా ఉండాలి: android.appwidget.AppWidgetManager ను దిగుమతి చేయండి; android.appwidget.AppWidgetProvider ను దిగుమతి చేయండి; android.content.Context దిగుమతి; androidx.annotation.NonNull దిగుమతి; android.content.Intent దిగుమతి; android.widget.RemoteViews దిగుమతి; android.widget.Toast దిగుమతి; // AppWidgetProvider క్లాస్ నుండి విస్తరించండి // పబ్లిక్ క్లాస్ కలెక్షన్ విడ్జెట్ AppWidgetProvider ని విస్తరిస్తుంది {స్టాటిక్ శూన్య నవీకరణఅప్విడ్జెట్ (సందర్భం సందర్భం, AppWidgetManager appWidgetManager, int appWidgetId) {// లేఅవుట్ వనరుల ఫైల్ను రిమోట్ వ్యూస్ ఆబ్జెక్ట్ లో లోడ్ చేయండి (రిమోట్ వ్యూస్ వ్యూస్ getPackageName (), R.layout.list_widget); setRemoteAdapter (సందర్భం, వీక్షణలు); // రిమోట్ వ్యూస్ ఆబ్జెక్ట్ గురించి AppWidgetManager కి తెలియజేయండి // appWidgetManager.updateAppWidget (appWidgetId, views); Int int (int appWidgetId: appWidgetIds) {update (appWidgetId: appWidgetIds) {కోసం (అప్డేట్ (సందర్భం సందర్భం, AppWidgetManager appWidgetManager, int appWidgetIds) {అప్డేట్ పబ్లిక్ శూన్యత ఓవర్రైడ్ చేయండి; } super.onUpdate (సందర్భం, appWidgetManager, appWidgetIds); Public ఎనేబుల్డ్ (సందర్భోచిత సందర్భం) public పబ్లిక్ శూన్యతను ఓవర్రైడ్ చేయండి {Toast.makeText (సందర్భం, "onEnabled called", Toast.LENGTH_LONG) .షో (); Disabled డిసేబుల్డ్ (సందర్భోచిత సందర్భం) public పబ్లిక్ శూన్యతను ఓవర్రైడ్ చేయండి {Toast.makeText (సందర్భం, "onDisabled called", Toast.LENGTH_LONG) .షో (); stat ప్రైవేట్ స్టాటిక్ శూన్య సెట్ రిమోట్అడాప్టర్ (సందర్భ సందర్భం, onNonNull ఫైనల్ రిమోట్ వ్యూస్ వీక్షణలు) {views.setRemoteAdapter (R.id.widget_list, new Intent (context, WidgetService.class)); }} మీ అప్లికేషన్ విడ్జెట్కు AppWidgetProviderInfo ఫైల్ కూడా అవసరం, ఇది మీ విడ్జెట్ యొక్క కనీస కొలతలు మరియు ఎంత తరచుగా నవీకరించబడాలి అనేదానితో సహా అనేక ముఖ్యమైన లక్షణాలను నిర్వచిస్తుంది. AppWidgetProviderInfo ఫైల్ మీ ప్రాజెక్ట్ యొక్క res / xml ఫోల్డర్లో నిల్వ చేయబడుతుంది. మీ ప్రాజెక్ట్ ఇప్పటికే ఈ ఫోల్డర్ను కలిగి ఉండకపోతే, మీరు దీన్ని సృష్టించాలి: తరువాత, మేము మా AppWidgetProviderInfo గా ఉపయోగిస్తున్న సేకరణ_విడ్జెట్_ఇన్ఫో ఫైల్ను సృష్టించండి: మా AppWidgetProviderInfo ఫైల్లో, మేము ఈ క్రింది లక్షణాలను నిర్వచించాలి: పరికరం యొక్క విడ్జెట్ పిక్కర్లో మీ అప్లికేషన్ విడ్జెట్ను సూచించే డ్రా చేయదగినది ఇది.సేకరణ విడ్జెట్ జనాభా
AppWidgetProvider: మీ విడ్జెట్ను కాన్ఫిగర్ చేస్తోంది
అడాప్టర్ను సృష్టించండి
విడ్జెట్ జీవితచక్ర పద్ధతులను నిర్వచించడం
OnUpdate తో క్రొత్త కంటెంట్ను తిరిగి పొందడం
onEnabled: ప్రారంభ సెటప్ చేస్తోంది
OnDisabled తో శుభ్రం
పూర్తయిన AppWidgetProvider
AppWidgetProviderInfo ఫైల్
1. ఆండ్రాయిడ్: ప్రివ్యూ ఇమేజ్
మీరు ప్రివ్యూ ఇమేజ్ ఇవ్వకపోతే, బదులుగా Android మీ అప్లికేషన్ యొక్క చిహ్నాన్ని ఉపయోగిస్తుంది. విడ్జెట్ పిక్కర్ నుండి మీ విడ్జెట్ను ఎంచుకోవడానికి వినియోగదారులను ప్రోత్సహించడానికి, మీరు యూజర్ హోమ్స్క్రీన్లో సరిగ్గా కాన్ఫిగర్ చేసిన తర్వాత మీ విడ్జెట్ ఎలా ఉంటుందో చూపించే డ్రాయిబుల్ను మీరు అందించాలి.
ప్రివ్యూ చిత్రాన్ని రూపొందించడానికి సులభమైన మార్గం, Android ఎమ్యులేటర్లో చేర్చబడిన విడ్జెట్ ప్రివ్యూ అనువర్తనాన్ని ఉపయోగించడం. ఈ అనువర్తనం మీ విడ్జెట్ను కాన్ఫిగర్ చేసి, ఆపై మీ Android ప్రాజెక్ట్లో ఉపయోగించగల చిత్రాన్ని రూపొందించడానికి మిమ్మల్ని అనుమతిస్తుంది.
మేము మా విడ్జెట్ను నిర్మించిన తర్వాత ఈ చిత్రాన్ని సృష్టిస్తాము, కాబట్టి ప్రస్తుతానికి నేను స్వయంచాలకంగా రూపొందించిన మిప్మ్యాప్ / ఐసి_లాంచర్ వనరును తాత్కాలిక ప్రివ్యూ చిత్రంగా ఉపయోగిస్తున్నాను.
2. Android: widgetCategory
అప్లికేషన్ విడ్జెట్లను తప్పనిసరిగా యాప్ విడ్జెట్ హోస్ట్ లోపల ఉంచాలి, ఇది సాధారణంగా స్టాక్ ఆండ్రాయిడ్ హోమ్స్క్రీన్, కానీ ఈవీ లాంచర్ లేదా నోవా లాంచర్ వంటి మూడవ పార్టీ లాంచర్ కావచ్చు.
API స్థాయిలు 17 మరియు 20 మధ్య, హోమ్స్క్రీన్లో అప్లికేషన్ విడ్జెట్లను ఉంచడం సాధ్యమైంది లేదా లాక్స్క్రీన్, కానీ లాక్స్క్రీన్ మద్దతు API స్థాయి 21 లో తొలగించబడింది.
మీ అనువర్తన విడ్జెట్ను హోమ్స్క్రీన్, లాక్స్క్రీన్ (ఆండ్రాయిడ్ “కీగార్డ్” గా సూచిస్తుంది) లేదా రెండూ, Android: widgetCategory లక్షణాన్ని ఉపయోగించి ఉంచవచ్చా అని మీరు పేర్కొనవచ్చు. ఆండ్రాయిడ్ యొక్క ఇటీవలి సంస్కరణల్లో లాక్స్క్రీన్పై విడ్జెట్లను ఉంచడం సాధ్యం కానందున, మేము హోమ్స్క్రీన్ను మాత్రమే లక్ష్యంగా చేసుకుంటాము.
వినియోగదారు గోప్యతను కాపాడటానికి, మీ విడ్జెట్ తాళాలు తెరపై ఉంచినప్పుడు ఏదైనా సున్నితమైన లేదా ప్రైవేట్ సమాచారాన్ని ప్రదర్శించకూడదు.
మీ విడ్జెట్ను లాక్స్క్రీన్లో ఉంచే అవకాశాన్ని మీరు వినియోగదారులకు ఇస్తే, యూజర్ యొక్క పరికరాన్ని చూసే ఎవరైనా మీ విడ్జెట్ను మరియు దానిలోని మొత్తం కంటెంట్ను చూడగలరు. యూజర్ యొక్క గోప్యతను పరిరక్షించడంలో సహాయపడటానికి, మీ విడ్జెట్ తాళాలు తెరపై ఉంచినప్పుడు ఏదైనా సున్నితమైన లేదా ప్రైవేట్ సమాచారాన్ని ప్రదర్శించకూడదు. మీ విడ్జెట్ వ్యక్తిగత డేటాను కలిగి ఉంటే, అప్పుడు మీరు ప్రత్యేక హోమ్స్క్రీన్ మరియు లాక్స్క్రీన్ లేఅవుట్లను అందించడాన్ని పరిశీలించాలనుకోవచ్చు.
3. Android: initialLayout
ఇది మీ విడ్జెట్ హోమ్స్క్రీన్లో ఉంచినప్పుడు ఉపయోగించాల్సిన లేఅవుట్ రిసోర్స్ ఫైల్, ఇది మా ప్రాజెక్ట్ కోసం list_widget.xml.
4. android: resizeMode = ”క్షితిజ సమాంతర | నిలువు”
Android: resizeMode గుణం మీ విడ్జెట్ను అడ్డంగా, నిలువుగా లేదా రెండు అక్షాలతో పాటు పరిమాణాన్ని మార్చవచ్చో పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
వివిధ రకాల స్క్రీన్లలో మీ విడ్జెట్ డిస్ప్లేలు మరియు ఫంక్షన్లను సరిగ్గా నిర్ధారించడానికి, మీ విడ్జెట్ను అడ్డంగా పరిమాణం మార్చడానికి మీరు అనుమతించాలని సిఫార్సు చేయబడింది మరియు నిలువుగా, మీకు కాకపోవడానికి ఒక నిర్దిష్ట కారణం ఉంటే తప్ప.
5. Android: minHeight మరియు Android: minWidth
మీ విడ్జెట్ పునర్వినియోగపరచదగినది అయితే, వినియోగదారు మీ విడ్జెట్ నిరుపయోగంగా మారే స్థాయికి కుదించదని మీరు నిర్ధారించుకోవాలి. మీ అనువర్తనం వినియోగదారు పరిమాణాన్ని మార్చినప్పుడు అది తగ్గిపోతుందని మీరు నిర్వచించటానికి minHeight మరియు minWidth లక్షణాలను ఉపయోగించవచ్చు.
ఈ విలువలు మీ విడ్జెట్ యొక్క ప్రారంభ పరిమాణాన్ని కూడా సూచిస్తాయి, కాబట్టి మీ విడ్జెట్ పునర్వినియోగపరచబడకపోతే minHeight మరియు minWidth విడ్జెట్ యొక్క శాశ్వత పరిమాణాన్ని నిర్వచిస్తాయి.
6. Android: updatePeriodMillis
AppWidgetProviderInfo మీ విడ్జెట్ కొత్త సమాచారాన్ని ఎంత తరచుగా అభ్యర్థించాలో కూడా మీరు పేర్కొంటారు.
ప్రతి 1800000 మిల్లీసెకన్లకు (30 నిమిషాలు) చిన్న మద్దతు ఉన్న నవీకరణ విరామం. మీరు తక్కువ నవీకరణ విరామాన్ని ప్రకటించినప్పటికీ, మీ విడ్జెట్ ప్రతి అరగంటకు ఒకసారి మాత్రమే నవీకరించబడుతుంది.
మీరు వీలైనంత త్వరగా తాజా సమాచారాన్ని ప్రదర్శించాలనుకుంటే, సిస్టమ్ రెడీ క్రొత్త సమాచారాన్ని తిరిగి పొందడానికి నిద్ర పరికరాన్ని మేల్కొలపండి. పరికరం యొక్క బ్యాటరీ ద్వారా తరచుగా నవీకరణలు బర్న్ అవుతాయి, ప్రత్యేకించి రాత్రిపూట వంటి గణనీయమైన కాలం వరకు పరికరం పనిలేకుండా ఉంచబడుతుంది. సాధ్యమైనంత ఉత్తమమైన వినియోగదారు అనుభవాన్ని అందించడం అంటే బ్యాటరీ వినియోగాన్ని పరిమితం చేయడం మరియు క్రొత్త సమాచారాన్ని సహేతుకమైన కాలపరిమితిలో అందించడం మధ్య సమతుల్యతను కొట్టడం.
మీ విడ్జెట్ ప్రదర్శించే కంటెంట్ రకాన్ని కూడా మీరు పరిగణనలోకి తీసుకోవాలి.
Android కోసం మీ విడ్జెట్లు ప్రదర్శించే కంటెంట్ రకాన్ని కూడా మీరు పరిగణనలోకి తీసుకోవాలి. ఉదాహరణకు, వాతావరణ విడ్జెట్ రోజుకు ఒకసారి మాత్రమే నవీకరించబడిన సూచనను తిరిగి పొందవలసి ఉంటుంది, అయితే బ్రేకింగ్ న్యూస్ను ప్రదర్శించే అనువర్తనం మరింత తరచుగా నవీకరించవలసి ఉంటుంది.
ఈ ఖచ్చితమైన సమతుల్యతను కనుగొనడానికి, మీరు మీ విడ్జెట్ను నవీకరణ పౌన encies పున్యాల పరిధిలో పరీక్షించవలసి ఉంటుంది మరియు బ్యాటరీ జీవితంపై ప్రభావాన్ని మరియు మీ విడ్జెట్ యొక్క సమయానుకూలతను కొలవాలి. మీరు పరీక్షకుల సమూహాన్ని కలిగి ఉంటే, కొన్ని నవీకరణ పౌన encies పున్యాలు ఇతరులకన్నా సానుకూలంగా అందుతున్నాయో లేదో చూడటానికి మీరు A / B పరీక్షను కూడా సెటప్ చేయవచ్చు.
ఆల్సో చదవండి: AndroidManifest.xml మీరు తెలుసుకోవలసిన ప్రతిదీ
చివరగా, మీరు ఖచ్చితమైన నవీకరణ విరామాన్ని గుర్తించిన తర్వాత, మీ అనువర్తనాన్ని అభివృద్ధి చేసేటప్పుడు మరియు పరీక్షించేటప్పుడు తక్కువ విరామాన్ని ఉపయోగించాలనుకోవచ్చు. ఉదాహరణకు, మీ అనువర్తనం యొక్క అప్డేట్ () పద్ధతి సరిగ్గా ట్రిగ్గర్ అవుతోందని మీరు పరీక్షిస్తున్నప్పుడు, సాధ్యమైనంత తక్కువ నవీకరణ ఫ్రీక్వెన్సీని (Android: updatePeriodMillis = ”1800000 ″) ఉపయోగించవచ్చు, ఆపై మీ అనువర్తనాన్ని సాధారణ ప్రజలకు విడుదల చేయడానికి ముందు ఈ విలువను మార్చండి.
పూర్తయిన AppWidgetProviderInfo
పూర్తయిన సేకరణ_విడ్జెట్_ఇన్ఫో.ఎక్స్ఎమ్ ఫైల్ ఇలా ఉండాలి:
యూజర్ హోమ్స్క్రీన్ను అస్తవ్యస్తం చేయవద్దు!
హోమ్స్క్రీన్ ఎప్పుడూ చిందరవందరగా కనిపించదని నిర్ధారించడానికి, మేము మా విడ్జెట్కు కొన్ని పాడింగ్ మరియు మార్జిన్లను జోడించబోతున్నాము. మీ ప్రాజెక్ట్ ఇప్పటికే డైమెన్షన్. Xml ఫైల్ను కలిగి ఉండకపోతే, మీరు ఒకదాన్ని సృష్టించాలి:
- మీ ప్రాజెక్ట్ విలువలు ఫోల్డర్ను నియంత్రించండి-క్లిక్ చేయండి.
- క్రొత్త> విలువలు వనరుల ఫైల్ను ఎంచుకోండి.
- ఈ ఫైల్కు పేరు పరిమాణం ఇవ్వండి.
- సరే క్లిక్ చేయండి.
మీ డైమెన్షన్. Xml ఫైల్ను తెరిచి, కింది మార్జిన్ మరియు పాడింగ్ విలువలను నిర్వచించండి:
విడ్జెట్కు డేటాను పంపుతోంది
తరువాత, మేము విడ్జెట్ సేవను సృష్టించాలి, ఇది మా సేకరణ డేటాను విడ్జెట్కు పంపే బాధ్యత.
విడ్జెట్ సర్వీస్ పేరుతో కొత్త జావా క్లాస్ (క్రొత్త> జావా క్లాస్) ను సృష్టించండి మరియు ఈ క్రింది వాటిని జోడించండి:
android.content.Intent దిగుమతి; android.widget.RemoteViewsService దిగుమతి; పబ్లిక్ క్లాస్ విడ్జెట్ సర్వీస్ రిమోట్ వ్యూస్ సర్వీసును విస్తరిస్తుంది public public పబ్లిక్ రిమోట్ వ్యూస్ఫ్యాక్టరీ ఆన్ గెట్ వ్యూఫ్యాక్టరీ (ఇంటెంట్ ఇంటెంట్) over కొత్త డేటాప్రొవైడర్ను తిరిగి ఇవ్వండి (ఇది, ఉద్దేశం); }}
మీ విడ్జెట్ను మానిఫెస్ట్లో నమోదు చేస్తోంది
మేము ఇప్పుడు మా ప్రాజెక్ట్ యొక్క మానిఫెస్ట్లో కొన్ని మార్పులు చేయాలి.
ప్రారంభించడానికి, మానిఫెస్ట్ తెరిచి, మీ విడ్జెట్ను బ్రాడ్కాస్ట్ రిసీవర్గా నమోదు చేయండి. మేము Android.appwidget.action.APPWIDGET_UPDATE చర్య కోసం ఉద్దేశించిన ఫిల్టర్ను కూడా జోడించాలి:
తరువాత, మీరు అనువర్తన విడ్జెట్ ప్రొవైడర్ను పేర్కొనాలి:
చివరగా, మా విడ్జెట్కు డేటాను పంపే సేవను మేము ప్రకటించాలి, ఈ సందర్భంలో విడ్జెట్ సేవ తరగతి. ఈ సేవకు android.permission.BIND_REMOTEVIEWS అనుమతి అవసరం:
మీ విడ్జెట్ను పరీక్షకు ఉంచండి
మీరు ఈ ట్యుటోరియల్తో పాటు అనుసరిస్తుంటే, మీరు ఇప్పుడు యూజర్ హోమ్స్క్రీన్లో డేటా సమితిని ప్రదర్శించే పూర్తి సేకరణ విడ్జెట్ను కలిగి ఉంటారు.
ఇది నిజ జీవిత Android ప్రాజెక్ట్ అయితే, మీరు సాధారణంగా జీవితచక్ర పద్ధతులపై, ముఖ్యంగా ఆన్డేట్ () పద్ధతిని విస్తరిస్తారు, అయితే మీ Android పరికరంలో మీరు ఇన్స్టాల్ చేసి పరీక్షించగలిగే విడ్జెట్ను సృష్టించాల్సిన అవసరం ఉంది:
- అనుకూలమైన Android స్మార్ట్ఫోన్, టాబ్లెట్ లేదా AVD (Android వర్చువల్ పరికరం) లో ఈ ప్రాజెక్ట్ను ఇన్స్టాల్ చేయండి.
- హోమ్స్క్రీన్లోని ఏదైనా ఖాళీ విభాగాన్ని ఎక్కువసేపు నొక్కండి మరియు ప్రాంప్ట్ చేసినప్పుడు విడ్జెట్లను ఎంచుకోండి; ఇది విడ్జెట్ పికర్ను ప్రారంభిస్తుంది.
- మీరు ఇప్పుడే సృష్టించిన అప్లికేషన్ విడ్జెట్ను కనుగొనే వరకు విడ్జెట్ పిక్కర్ ద్వారా స్వైప్ చేయండి.
- ఈ విడ్జెట్ను మీ హోమ్స్క్రీన్కు జోడించడానికి ఎక్కువసేపు నొక్కండి.
- ఈ ప్రత్యేకమైన విడ్జెట్ యొక్క మొదటి ఉదాహరణ కనుక, onEnabled () పద్ధతి అమలు కావాలి మరియు మీరు “onEnabled called” తాగడానికి చూస్తారు.
- మీ విడ్జెట్ పరిమాణాన్ని మార్చండి. మీరు కనీస మద్దతు పరిమాణాన్ని సెట్ చేస్తే, మీరు ఈ విలువను దాటి విడ్జెట్ను కుదించలేరని తనిఖీ చేయండి.
- List హించిన విధంగా లిస్ట్ వ్యూ స్క్రోల్స్ అని పరీక్షించండి.
- తరువాత, మీరు మీ విడ్జెట్ను తొలగించడం ద్వారా onDisabled () పద్ధతిని తనిఖీ చేయాలి. విడ్జెట్ను ఎక్కువసేపు నొక్కి, ఆపై హోమ్ స్క్రీన్ నుండి తీసివేయి ఎంచుకోండి. ఈ ప్రత్యేకమైన విడ్జెట్ యొక్క చివరి ఉదాహరణ కనుక, onDisabled () పద్ధతి అమలు కావాలి మరియు మీరు “onDisabled called” తాగడానికి చూస్తారు.
మీరు పనిచేసే Android అనువర్తన విడ్జెట్ను అందించాల్సిన అవసరం ఉంది, కానీ వినియోగదారు అనుభవాన్ని తరచుగా మెరుగుపరచగల కొన్ని చేర్పులు ఉన్నాయి. కింది విభాగాలలో, విడ్జెట్ను ఉత్తమంగా ప్రదర్శించే ప్రివ్యూ చిత్రాన్ని సృష్టించడం ద్వారా విడ్జెట్ పిక్కర్ నుండి ఈ విడ్జెట్ను ఎంచుకోవాలని మేము వినియోగదారులను ప్రోత్సహిస్తాము. మీ ప్రాజెక్ట్కు కాన్ఫిగరేషన్ కార్యాచరణను జోడించడం ద్వారా పూర్తిగా అనుకూలీకరించదగిన విడ్జెట్ను ఎలా సృష్టించాలో కూడా నేను మీకు చూపిస్తాను.
Android విడ్జెట్ ప్రివ్యూ చిత్రాన్ని సృష్టిస్తోంది
మీరు మీ Android పరికరాన్ని పట్టుకుని, విడ్జెట్ పిక్కర్ ద్వారా స్వైప్ చేస్తే, ప్రతి విడ్జెట్ చిత్రం ద్వారా ప్రాతినిధ్యం వహిస్తుందని మీరు చూస్తారు, ఇది సాధారణంగా వినియోగదారు యొక్క హోమ్స్క్రీన్లో కాన్ఫిగర్ చేయబడిన తర్వాత ఈ విడ్జెట్ ఎలా ఉంటుందో చూపిస్తుంది.
మీ విడ్జెట్ను ఎంచుకోవడానికి వినియోగదారులను ప్రోత్సహించడానికి, మీరు మీ విడ్జెట్ అందించే ఉపయోగకరమైన సమాచారం మరియు లక్షణాలను హైలైట్ చేసే ప్రివ్యూ చిత్రాన్ని అందించాలి.
Android ఎమ్యులేటర్లో చేర్చబడిన విడ్జెట్ ప్రివ్యూ అనువర్తనాన్ని ఉపయోగించి మీరు త్వరగా మరియు సులభంగా ప్రివ్యూ చిత్రాన్ని సృష్టించవచ్చు.
విడ్జెట్ పరిదృశ్యం తాజా Android సిస్టమ్ చిత్రాలలో చేర్చబడలేదని గమనించండి, కాబట్టి మీరు నౌగాట్ (API స్థాయి 25) లేదా అంతకు మునుపు AVD ని సృష్టించాలి:
- API 25 లేదా అంతకంటే తక్కువ నడుస్తున్న AVD లో మీ అప్లికేషన్ను ఇన్స్టాల్ చేయండి.
- AVD యొక్క అనువర్తన డ్రాయర్ను తెరిచి, విడ్జెట్ ప్రివ్యూ అనువర్తనాన్ని ప్రారంభించండి.
- విడ్జెట్ ప్రివ్యూ ప్రస్తుతం ఈ AVD లో ఇన్స్టాల్ చేయబడిన ప్రతి అప్లికేషన్ యొక్క జాబితాను ప్రదర్శిస్తుంది; జాబితా నుండి మీ దరఖాస్తును ఎంచుకోండి.
- మీ విడ్జెట్ ఇప్పుడు ఖాళీ నేపథ్యంలో ప్రదర్శించబడుతుంది. మీ విడ్జెట్ అందించే ఉత్తమమైనదాన్ని చూపించే వరకు మీ విడ్జెట్ యొక్క పరిమాణాన్ని మరియు ట్వీకింగ్ చేయడానికి కొంత సమయం కేటాయించండి.
- మీ విడ్జెట్ యొక్క రూపాన్ని మరియు కంటెంట్తో మీరు సంతోషంగా ఉన్న తర్వాత, స్నాప్షాట్ తీసుకోండి ఎంచుకోండి.
- మీ స్నాప్షాట్ను తిరిగి పొందడానికి, Android స్టూడియోకి తిరిగి మారండి మరియు టూల్ బార్ నుండి వీక్షణ> సాధనం విండోస్> పరికర ఫైల్ ఎక్స్ప్లోరర్ ఎంచుకోండి. ఇది Android స్టూడియో యొక్క పరికర ఫైల్ ఎక్స్ప్లోరర్ను ప్రారంభిస్తుంది.
- పరికర ఫైల్ ఎక్స్ప్లోరర్లో, sdcard / Download కు నావిగేట్ చేయండి. మీరు మీ ప్రివ్యూ చిత్రాన్ని ఈ క్రింది ఆకృతిలో భద్రపరిచారు: _ori_.png
- ఈ చిత్రాన్ని ఆండ్రాయిడ్ స్టూడియో నుండి బయటకు లాగి, మీ డెస్క్టాప్ వంటి సులభంగా ప్రాప్యత చేయగల ఎక్కడో వదలండి.
- ఈ ఇమేజ్ ఫైల్కు వివరణాత్మక పేరు ఇవ్వండి.
- మీ ప్రాజెక్ట్ డ్రా చేయదగిన ఫోల్డర్లోకి ఫైల్ను లాగండి మరియు వదలండి.
- మీ AppWidgetProviderInfo ని తెరవండి, ఈ ప్రాజెక్ట్ కోసం collection_widget_info.xml.
- Android: previewImage = ”@ mipmap / ic_launcher” పంక్తిని కనుగొని, మీ ప్రివ్యూ చిత్రాన్ని సూచించడానికి దాన్ని నవీకరించండి.
మీ విడ్జెట్ ఇప్పుడు ఈ క్రొత్త చిత్ర వనరును దాని ప్రివ్యూ చిత్రంగా ఉపయోగిస్తుంది:
- మీ భౌతిక Android పరికరం లేదా AVD లో నవీకరించబడిన ప్రాజెక్ట్ను ఇన్స్టాల్ చేయండి.
- హోమ్స్క్రీన్లోని ఏదైనా ఖాళీ విభాగాన్ని ఎక్కువసేపు నొక్కండి.
- విడ్జెట్ పికర్ను ప్రారంభించే విడ్జెట్లను నొక్కండి.
- మీ విడ్జెట్కు స్క్రోల్ చేయండి; ఇది ఇప్పుడు నవీకరించబడిన ప్రివ్యూ చిత్రాన్ని ఉపయోగిస్తూ ఉండాలి.
అనుకూలీకరించదగిన విడ్జెట్లు: కాన్ఫిగరేషన్ కార్యాచరణను కలుపుతోంది
వినియోగదారు మీ విడ్జెట్ యొక్క ప్రతి ఉదాహరణను వారి హోమ్స్క్రీన్లో ఉంచినప్పుడు కాన్ఫిగరేషన్ కార్యాచరణ స్వయంచాలకంగా ప్రారంభమవుతుంది.
మీరు మీ ప్రాజెక్ట్కు కాన్ఫిగరేషన్ కార్యాచరణను జోడించాలనుకోవడానికి అనేక కారణాలు ఉన్నాయి.
విడ్జెట్లు వ్యక్తిగత వినియోగదారుకు చాలా ముఖ్యమైన సమాచారం లేదా లక్షణాలకు ప్రాప్యతను అందించినప్పుడు ఉత్తమ వినియోగదారు అనుభవాన్ని అందిస్తాయి.
మొదట, కొన్ని విడ్జెట్లకు ప్రారంభ సెటప్ అవసరం, ఉదాహరణకు ట్రాఫిక్ హెచ్చరికలను ప్రదర్శించే విడ్జెట్ వినియోగదారు ఇంటి చిరునామా, వారు పనిచేసే ప్రదేశం మరియు వారు సాధారణంగా ప్రయాణించే సమయాలను తెలుసుకోవాలి. ఈ సమాచారాన్ని నమోదు చేయడానికి కొంత మార్గం లేకుండా, మీ విడ్జెట్ పూర్తిగా పనికిరానిది కావచ్చు!
అదనంగా, విడ్జెట్లు వ్యక్తిగత వినియోగదారుకు చాలా ముఖ్యమైన సమాచారం లేదా లక్షణాలకు ప్రాప్యతను అందించినప్పుడు ఉత్తమ వినియోగదారు అనుభవాన్ని అందిస్తాయి. మీ ప్రాజెక్ట్కు కాన్ఫిగరేషన్ కార్యాచరణను జోడించడం ద్వారా, మీరు ఎంచుకునే మరియు ఎంచుకునే స్వేచ్ఛను వినియోగదారులకు ఇవ్వవచ్చు ఖచ్చితంగా మీ విడ్జెట్లో ఏమి చేర్చబడ్డాయి.
విడ్జెట్ యొక్క నేపథ్యాన్ని లేదా ఫాంట్ను మార్చడం వంటి సాపేక్షంగా సూటిగా అనుకూలీకరించడం కూడా వినియోగదారు అనుభవంపై సానుకూల ప్రభావాన్ని చూపుతుంది - అన్నింటికంటే, వారి హోమ్స్క్రీన్తో దృశ్యమానంగా ఘర్షణ పడే విడ్జెట్ను ఎవరూ అభినందించరు!
వారి హోమ్స్క్రీన్తో దృశ్యమానంగా ఘర్షణ పడే విడ్జెట్ను ఎవరూ అభినందించరు!
ప్రత్యామ్నాయంగా, కొన్నిసార్లు మీరు మీ విడ్జెట్లో చేర్చాలనుకుంటున్న కంటెంట్ యొక్క సుదీర్ఘ జాబితాను కలిగి ఉండవచ్చు మరియు మీ ఎంపికలను తగ్గించడానికి మీరు కష్టపడుతున్నారు. కాన్ఫిగరేషన్ కార్యాచరణ మీ ఆలోచనలన్నింటినీ లేకుండా మంచి ఉపయోగం కోసం ఒక మార్గం సృష్టించడం చిందరవందరగా, గందరగోళంగా ఉన్న విడ్జెట్. విడ్జెట్ను సెటప్ చేయడం విధిగా అనిపించకూడదని గుర్తుంచుకోండి, కాబట్టి మీరు కాన్ఫిగరేషన్ కార్యాచరణను అందిస్తే, మిమ్మల్ని మీరు మూడు కాన్ఫిగరేషన్ ఎంపికలకు పరిమితం చేయాలని సిఫార్సు చేయబడింది.
మా ప్రాజెక్ట్కు కాన్ఫిగరేషన్ కార్యాచరణను చేర్చుదాం!
మొదట, మా కాన్ఫిగరేషన్ కార్యాచరణకు లేఅవుట్ అవసరం, కాబట్టి config_activity.xml పేరుతో కొత్త లేఅవుట్ వనరుల ఫైల్ను సృష్టించండి.
నేను ఈ లేఅవుట్కు ఈ క్రింది బటన్లను జోడించబోతున్నాను:
- కాన్ఫిగరేషన్ బటన్. నిజ జీవిత ప్రాజెక్టులో, ఈ బటన్ విడ్జెట్ను ఏదో ఒక విధంగా సవరించుకుంటుంది, ఉదాహరణకు కంటెంట్ను జోడించడం లేదా తొలగించడం లేదా విడ్జెట్ నవీకరణలను ఎంత తరచుగా మార్చడం. మా కోడ్ను సూటిగా ఉంచడంలో సహాయపడటానికి, ఈ బటన్ను క్లిక్ చేస్తే కాన్ఫిగరేషన్ ఐచ్ఛికాలు అభినందించి త్రాగుట కనిపిస్తుంది.
- సెటప్ బటన్. వినియోగదారు వారి విడ్జెట్ ఎలా కాన్ఫిగర్ చేయబడిందో సంతోషంగా ఉంటే, ఈ బటన్ను నొక్కితే కొత్తగా కాన్ఫిగర్ చేయబడిన విడ్జెట్ను వారి హోమ్స్క్రీన్లో ఉంచుతారు.
ఇక్కడ నేను పూర్తి చేసిన config_activity.xml ఫైల్:
కాన్ఫిగరేషన్ కార్యాచరణను సృష్టించండి
ఇప్పుడు, మన కాన్ఫిగరేషన్ కార్యాచరణను సృష్టించాలి.
ప్రారంభించడానికి, కాన్ఫిగర్ఆక్టివిటీ పేరుతో కొత్త జావా క్లాస్ని సృష్టించండి. ఈ కార్యాచరణలో, కాన్ఫిగరేషన్ కార్యాచరణను ప్రారంభించిన ఉద్దేశం నుండి మేము అనువర్తన విడ్జెట్ ID ని తిరిగి పొందబోతున్నాము. ఈ ఉద్దేశ్యానికి విడ్జెట్ ID లేకపోతే, మేము ముగింపు () పద్ధతిని పిలవాలి:
ఉద్దేశం ఉద్దేశం = getIntent (); బండిల్ ఎక్స్ట్రాలు = ఉద్దేశం.గెట్ ఎక్స్ట్రాస్ (); if (extras! = null) {appWidgetId = extras.getInt (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {ముగింపు (); }
తరువాత, మేము తిరిగి వచ్చే ఉద్దేశాన్ని సృష్టించాలి, అసలు appWidgetId ను పాస్ చేసి, కాన్ఫిగరేషన్ కార్యాచరణ నుండి ఫలితాలను సెట్ చేయాలి:
ఉద్దేశం ఫలితం విలువ = క్రొత్త ఉద్దేశం (); resultValue.putExtra (AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); setResult (RESULT_OK, resultValue); పూర్తి (); }}}
మీరు కాన్ఫిగరేషన్ కార్యాచరణను అందిస్తే, కాన్ఫిగరేషన్ కార్యాచరణ ప్రారంభించినప్పుడు ACTION_APPWIDGET_UPDATE ప్రసారం స్వయంచాలకంగా పంపబడదు, అంటే ఆన్డేట్ () పద్ధతి లేదు వినియోగదారు మీ విడ్జెట్ యొక్క ఉదాహరణను సృష్టించినప్పుడు పిలుస్తారు.
మీ విడ్జెట్ తాజా సమాచారం మరియు కంటెంట్తో సృష్టించబడిందని నిర్ధారించడానికి, మీ కాన్ఫిగరేషన్ కార్యాచరణ తప్పక మొదటి అప్డేట్ () అభ్యర్థనను ప్రారంభించండి.
పూర్తయిన కాన్ఫిగర్ యాక్టివిటీ ఇక్కడ ఉంది:
android.app.Activity దిగుమతి; android.appwidget.AppWidgetManager ను దిగుమతి చేయండి; android.os.Bundle దిగుమతి; android.widget.Button దిగుమతి; android.content.Intent దిగుమతి; android.view.View దిగుమతి; android.view.View.OnClickListener ను దిగుమతి చేయండి; android.widget.Toast దిగుమతి; పబ్లిక్ క్లాస్ కాన్ఫిగర్ఆక్టివిటీ కార్యాచరణను విస్తరిస్తుంది ver ver ఓవర్రైడ్ రక్షిత శూన్యత ఆన్క్రియేట్ (బండిల్ సేవ్ఇన్స్టాన్స్స్టేట్) {super.onCreate (saveInstanceState); setContentView (R.layout.config_activity); setResult (RESULT_CANCELED); బటన్ సెటప్ విడ్జెట్ = (బటన్) findViewById (R.id.setupWidget); setupWidget.setOnClickListener (క్రొత్త OnClickListener () C public పబ్లిక్ శూన్యతను ఆన్క్లిక్ చేయండి (v చూడండి) {handleSetupWidget ();}}); బటన్ configButton = (బటన్) findViewById (R.id.configButton); configButton.setOnClickListener (క్రొత్త OnClickListener () C public పబ్లిక్ శూన్యతను ఆన్క్లిక్ చేయండి (v చూడండి) {handleConfigWidget ();}}); v ప్రైవేట్ శూన్య హ్యాండిల్ సెటప్ విడ్జెట్ () {showAppWidget (); v ప్రైవేట్ శూన్య హ్యాండిల్కాన్ఫిగ్ విడ్జెట్ () {టోస్ట్.మేక్ టెక్స్ట్ (కాన్ఫిగర్ఆక్టివిటీ.ఇది, "కాన్ఫిగరేషన్ ఎంపికలు", టోస్ట్. LENGTH_LONG) .షో (); } int appWidgetId; ప్రైవేట్ శూన్య ప్రదర్శనఅప్విడ్జెట్ () {appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; ఉద్దేశం ఉద్దేశం = getIntent (); బండిల్ ఎక్స్ట్రాలు = ఉద్దేశం.గెట్ ఎక్స్ట్రాస్ (); if (extras! = null) {appWidgetId = extras.getInt (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {ముగింపు (); TO // చేయవలసినది: ఆకృతీకరణను జరుపుము // ఉద్దేశం ఫలితం విలువ = క్రొత్త ఉద్దేశం (); resultValue.putExtra (AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); setResult (RESULT_OK, resultValue); పూర్తి (); }}}
మీరు కాన్ఫిగరేషన్ కార్యాచరణను సృష్టించిన తర్వాత, మీరు ఈ కార్యాచరణను మానిఫెస్ట్లో ప్రకటించాలి మరియు ఇది APPWIDGET_CONFIGURE చర్యను అంగీకరిస్తుందని పేర్కొనాలి:
చివరగా, కాన్ఫిగరేషన్ కార్యాచరణ ప్యాకేజీ పరిధికి వెలుపల ప్రస్తావించబడినందున, మేము ఈ కార్యాచరణను మా AppWidgetProviderInfo లో ప్రకటించాలి, ఈ సందర్భంలో ఇది collection_widget_info.xml ఫైల్:
android: Configure = "com.jessicathornsby.collectionwidget.ConfigActivity">
మీ ప్రాజెక్ట్ను పరీక్షిస్తోంది
ఇప్పుడు మీరు పూర్తి చేసిన ప్రాజెక్ట్ను పరీక్షించడానికి సమయం ఆసన్నమైంది:
- మీ నవీకరించబడిన ప్రాజెక్ట్ను భౌతిక Android పరికరం లేదా AVD లో ఇన్స్టాల్ చేయండి.
- మీరు చాలా తాజా సంస్కరణతో పని చేస్తున్నారని నిర్ధారించుకోవడానికి, మీ విడ్జెట్ యొక్క మునుపటి అన్ని సందర్భాలను తొలగించండి.
- హోమ్స్క్రీన్ యొక్క ఏదైనా ఖాళీ ప్రాంతాన్ని ఎక్కువసేపు నొక్కి, ప్రాంప్ట్ చేసినప్పుడు విడ్జెట్లను ఎంచుకోండి.
- మీ విడ్జెట్ను విడ్జెట్ పిక్కర్లో కనుగొని, దాన్ని ఎంచుకోవడానికి ఎక్కువసేపు నొక్కండి.
- మీ హోమ్స్క్రీన్పై విడ్జెట్ను వదలండి. కాన్ఫిగరేషన్ కార్యాచరణ స్వయంచాలకంగా ప్రారంభించబడాలి.
- పెర్ఫార్మ్ కొన్ని కాన్ఫిగరేషన్ బటన్ను ఒక క్లిక్గా ఇవ్వండి మరియు కాన్ఫిగరేషన్ ఐచ్ఛికాలు టోస్ట్ కనిపిస్తుంది, ఈ పరస్పర చర్య విజయవంతంగా నమోదు చేయబడిందని నిర్ధారిస్తుంది.
- మీరు విడ్జెట్ యొక్క సెట్టింగులను సర్దుబాటు చేశారని g హించుకోండి మరియు ఇప్పుడు దాన్ని మీ హోమ్స్క్రీన్లో ఉంచడానికి సిద్ధంగా ఉన్నారు; సృష్టించు విడ్జెట్ బటన్ను నొక్కండి మరియు ఈ విడ్జెట్ విజయవంతంగా సృష్టించబడాలి.
మీరు పూర్తి చేసిన సేకరణ విడ్జెట్ ప్రాజెక్ట్ను గిట్హబ్ నుండి డౌన్లోడ్ చేసుకోవచ్చు.
చుట్టి వేయు
ఈ వ్యాసంలో, యూజర్ హోమ్స్క్రీన్లో డేటా సెట్ను ప్రదర్శించే స్క్రోల్ చేయదగిన సేకరణ విడ్జెట్ను మేము సృష్టించాము.
మీరు ఈ ప్రాజెక్ట్తో పనిచేయడం కొనసాగించాలనుకుంటే, మీ AppWidgetProviderInfo ఫైల్ (collection_widget_info) లో నిర్వచించిన విరామంలో క్రొత్త సమాచారంతో నవీకరించే విడ్జెట్ను సృష్టించడానికి, మీ స్వంత కోడ్ను onUpdate () పద్ధతిలో జోడించడానికి ప్రయత్నించవచ్చు.
మీరు ఆండ్రాయిడ్ విడ్జెట్ను సృష్టిస్తే, ఈ క్రింది వ్యాఖ్యలలో మీ సృష్టిని ఖచ్చితంగా పంచుకోండి!