ඇන්ඩ්‍රොයිඩ් පිරිසැලසුම් ලිපිගොනු වල “මෙවලම්: සන්දර්භය” යනු කුමක්ද?


949

ADT හි නවතම නව අනුවාදයකින් පටන් ගෙන, XML ලිපිගොනු වල මෙම නව ගුණාංගය මම දුටුවෙමි, උදාහරණයක් ලෙස:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

"මෙවලම්: සන්දර්භය" යනු කුමක්ද?

එහි ලියා ඇති ක්‍රියාකාරකම් සඳහා නිශ්චිත මාවත පවා එය දන්නේ කෙසේද? එය මැනිෆෙස්ටයේ ඇතුළත යෙදුමේ පැකේජය දෙස බලනවාද?

එය සන්දර්භය දීර් extend කරන පන්තිවලට පමණක් සීමා වී තිබේද? ListView අයිතම ආදිය සඳහා එය භාවිතා කළ හැකිද?


ඔව්, මම නිතරම නවතම adt & sdk අනුවාදයන් ස්ථාපනය කරන බැවින් ("adt & sdk 20 පෙරදසුන 3 භාවිතා කරමින්)" ("අළුත් දේ" යන කොටසේ එය නොපෙන්වා) මට මග හැරී ඇත්තේ කුමක්දැයි මම කල්පනා කරමි.
ඇන්ඩ්‍රොයිඩ් සංවර්ධක

9
එසේම, මෙහි නිල ලියකියවිලි දෙස බලන්න: < tools.android.com/tech-docs/tools-attributes#TOC-tools:context >.
MDTech.us_MAN

2
මගේ යෙදුම තවමත් සන්දර්භය නොමැතිව ක්‍රියා කරයි.
වඩාත්ම ගෞරවනීය සර්

1
13 user132522 IDE තුළම මේ සියල්ලම සංවර්ධනය පිළිබඳ වේ. යෙදුම ක්‍රියාත්මක කිරීමේදී නොවේ
ඇන්ඩ්‍රොයිඩ් සංවර්ධක

මේ ගැන කුමක් කිව හැකිද? stackoverflow.com/questions/41779742/…

Answers:


452

ඔබගේ පිරිසැලසුම් පෙරදසුන පෙන්වීමට UI සංස්කාරකය භාවිතා කරන ක්‍රියාකාරකම් මෙයයි. එය මෙහි ලේඛනගත කර ඇත :

මෙම පිරිසැලසුම පෙරනිමියෙන් මෙම පිරිසැලසුම හා සම්බන්ධ වන්නේ කුමන ක්‍රියාකාරකමකින්දැයි ප්‍රකාශ කරයි. මෙමඟින් ක්‍රියාකාරකම පිළිබඳ දැනුමක් අවශ්‍ය වන සංස්කාරකයේ හෝ පිරිසැලසුම් පෙරදසුනෙහි විශේෂාංග සක්‍රීය කරයි, එනම් පිරිසැලසුමෙහි පිරිසැලසුම් තේමාව කුමක් විය යුතුද යන්න සහ ඔබ ඉක්මන් විසඳුමකින් ඒවා සාදන විට ක්ලික් හෑන්ඩ්ලර් ඇතුළත් කළ යුත්තේ කොතැනද?


මට පේනවා . මෙහි ඇති තිර පිටපතට අනුව: tools.android.com/_/rsrc/1337185954574/recent/newconfigchooser/… , එයින් අදහස් කරන්නේ සන්දර්භය විහිදෙන පන්තියක් විය යුතු නැති බවයි, නේද? එසේ නම්, ඔබ පවසන දෙයට වඩා වැඩි යමක් කරනු ඇතැයි මම සිතමි.
ඇන්ඩ්‍රොයිඩ් සංවර්ධක

2
Activityදිගු වේ Context, එබැවින් ඔබ අදහස් කරන්නේ කුමක්දැයි විශ්වාස නැද්ද? එය වඩාත් ඇත්ත වශයෙන්ම කළ හැකිය, ඔබ කැමති නම්, ප්‍රභව කේතය පරීක්ෂා කරන්න, එය ලබා ගත හැකිය. මම කිසිම විස්තරයක් දන්නේ නැහැ.
නිකොලායි එලෙන්කොව්

අපොයි. මම තිර රුවෙහි පෙළ නිවැරදිව කියවා නැත. සමාවන්න. මා පෙන්වා ඇති දේ මත සැරිසරන විට, එය කැබැල්ලක් විය හැකි බව ද කියයි, නමුත් කොටස්වල තේමාව කොතැනකවත් ලියා නැත, නැත? කෙසේ වෙතත්, මෙම නව ගුණාංගය කුමක් සඳහාදැයි මට තවමත් විශ්වාස නැත. නව ගූගල් io මේ ගැන කියයිදැයි සිතන්න.
ඇන්ඩ්‍රොයිඩ් සංවර්ධක

26
ඔවුන් මෙම විශේෂාංග පෙන්වන නව වීඩියෝවක් සාදන ලදී: youtube.com/…
android සංවර්ධක

1
නවතම ප්රලේඛනය ලින්ක් developer.android.com/studio/write/tool-attributes.html
ක්ලයිව් Sargeant

382

එම ගුණාංගය මූලික වශයෙන් පිරිසැලසුමට ඉහළින් “ඇසෝසියේටඩ් ක්‍රියාකාරකම්” තේරීම සඳහා නොනැසී පවතී. ධාවන වේලාවේදී, පිරිසැලසුමක් සෑම විටම ක්‍රියාකාරකමක් සමඟ සම්බන්ධ වේ. එය ඇත්ත වශයෙන්ම එකකට වඩා වැඩි ගණනක් සමඟ සම්බන්ධ කළ හැකි නමුත් අවම වශයෙන් එකක්වත් විය හැකිය. මෙවලම තුළ, මෙම සිතියම්කරණය ගැන අප දැනගත යුතුය (ක්‍රියාත්මක වන වේලාවේදී එය අනෙක් දිශාවට සිදු වේ; ක්‍රියාකාරකමකට යම් අංගයන් ධාවනය කිරීම සඳහා setContentView (පිරිසැලසුම) අමතන්න).

මේ මොහොතේ, අපි එය භාවිතා කරන්නේ එක් දෙයකට පමණි: පිරිසැලසුමක් සඳහා පෙන්වීමට නිවැරදි තේමාව තෝරා ගැනීම (මැනිෆෙස්ට් ගොනුවට ක්‍රියාකාරකමක් සඳහා තේමාවන් ලියාපදිංචි කළ හැකි බැවින් හා සම්බන්ධ ක්‍රියාකාරකම් අප දැනගත් පසු, අපට තෝරා ගත හැකිය පිරිසැලසුම සඳහා පෙන්වීමට නිවැරදි තේමාව). අනාගතයේ දී, ක්‍රියාකාරී තීරුව විදැහුම් කිරීම (ක්‍රියාකාරකම සමඟ සම්බන්ධ වී ඇත), ක්ලික් ක්ලික් හසුරුවන්නන් එක් කිරීමට ස්ථානයක් වැනි අමතර විශේෂාංග ධාවනය කිරීමට අපි මෙය භාවිතා කරමු.

මෙය මෙවලමක් වීමට හේතුව: නාම අවකාශයේ ගුණාංගය නම් මෙය මෙවලම භාවිතා කිරීම සඳහා සැලසුම් කළ සිතියම්ගත කිරීමක් පමණි. පිරිසැලසුම බහුවිධ ක්‍රියාකාරකම් / කොටස් ආදියෙන් භාවිතා කළ හැකිය. අපට අවශ්‍ය වන්නේ සුදුසු තේමාවක් පෙන්වීමට අපට හැකි වන පරිදි අභිමත බන්ධන තෝරා ගැනීමට ක්‍රමයක් ලබා දීමට ය; ඔබට අපගේ ලැයිස්තු දර්ශනය සහ කොටස් බන්ධන ආදිය වෙනස් කළ හැකි සේම ඔබට ඕනෑම වේලාවක එය වෙනස් කළ හැකිය.

(මෙන්න වැඩි විස්තර සහිත සම්පූර්ණ changeset තියෙන්නේ මේ )

ඔව්, ඉහත ලැයිස්තුගත කර ඇති නිකොලායි සබැඳිය මඟින් නව වින්‍යාස තේරීම පෙනුම හා ක්‍රියා කරන ආකාරය පෙන්වයි

තවත් එක් දෙයක්: "මෙවලම්" නාම අවකාශය විශේෂයි. ඇන්ඩ්‍රොයිඩ් ඇසුරුම් මෙවලම එය නොසලකා හැරීමට දන්නා බැවින් එම ලක්ෂණ කිසිවක් APK වෙත ඇසුරුම් නොකෙරේ. පිරිසැලසුමේ අමතර පාර-දත්ත සඳහා අපි එය භාවිතා කරමු. උදාහරණයක් ලෙස ලින්ට් අනතුරු ඇඟවීම් මැඩපැවැත්වීමේ ගුණාංග ගබඩා කර ඇත්තේ ද - මෙවලම් ලෙස: නොසලකා හරින්න.


එහි මූලික පැකේජයක් නොමැති නම් එය ක්‍රියාකාරකම් සඳහා සම්පූර්ණ මාර්ගය දැන ගන්නේ කෙසේද? එය මැනිෆෙස්ට් ගොනුව දෙස බලනවාද?
ඇන්ඩ්‍රොයිඩ් සංවර්ධක

2
ඔව්, එය මැනිෆෙස්ට් ගොනුවේ ක්‍රියාකාරකම් ලියාපදිංචි කිරීම් වලට සමාන ආකාරයකින් සලකන අතර, එහිදී ඔබට නාම ලක්ෂණයෙහි ඇති පැකේජය මඟ හැරිය හැක. අවශ්‍ය නම්, මැනිෆෙස්ට් ගොනු මූල මූලද්‍රව්‍යයෙන් ඇසුරුම් ප්‍රකාශය එය සකස් කරයි.
ටෝර් නොර්බි

හොඳයි. මේ සියල්ල (සහ තවත්) google io 2012 හි පෙන්වනු ඇත්ද? මට නව විශේෂාංග ගැන දැන ගැනීමට බලා සිටිය නොහැක. :)
ඇන්ඩ්‍රොයිඩ් සංවර්ධක

1
නව ව්‍යාපෘතියක් සඳහා ජනනය කරන ලද එක්ස්එම්එල් තුළ එය ක්ෂේත්‍රයේ tools:contextවටිනාකම TextViewදක්වයි. සමස්ත පිරිසැලසුමට තේමාවක් යෙදීම සඳහා මෙය ගෝලීය භාවිත නඩුවක් සේ පෙනෙන බැවින්, එය මූල පිරිසැලසුමට ඇතුළත් නොකරන්නේ ඇයි?
ජේසන් රොබින්සන්

3
අපගේ වර්තමාන මෙවලම් ගුණාංග ලේඛනගත කරන ලේඛනයක් මම එකතු කර ඇත්තෙමි: tools.android.com/tech-docs/tools-attributes
Tor Norbye

93

අනුව ඇන්ඩ්රොයිඩ් මෙවලම් ව්යාපෘතිය අඩවිය :

මෙවලම්: සන්දර්භය

මෙම ගුණාංගය සාමාන්‍යයෙන් සැකසුම් XML ගොනුවක මූල මූලද්රව්යය මත සකසා ඇති අතර, පිරිසැලසුම සම්බන්ධ වන්නේ කුමන ක්රියාකාරකම්ද යන්න වාර්තා කරයි (අවශ්ය අවස්ථාවේ දී, පැහැදිලිවම පිරිසැලසුමක් එකකට වඩා භාවිතා කළ හැකිය). සුපුරුදු තේමාවක් අනුමාන කිරීම සඳහා මෙය පිරිසැලසුම් සංස්කාරකය විසින් භාවිතා කරනු ඇත, මන්ද තේමාවන් ප්‍රතිපත්ති ප්‍රකාශනයේ අර්ථ දක්වා ඇති අතර ඒවා පිරිසැලසුම් නොව ක්‍රියාකාරකම් සමඟ සම්බන්ධ වේ. සම්පූර්ණ යෙදුම් පැකේජයේ නමකින් තොරව ක්‍රියාකාරකම් පංතිය උපසර්ගයක් ලෙස සඳහන් කිරීමට ඔබට ප්‍රකාශිත ආකාරයටම තිත් උපසර්ගය භාවිතා කළ හැකිය.

<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">  

භාවිතා කළේ: ස්ටුඩියෝ සහ සූර්යග්‍රහණ, ලින්ට් හි පිරිසැලසුම් සංස්කාරකවරු


14

1. විස්තරය

tools: context = "activity name"එය තුලට ඇසුරුම් කළ නොහැකි වනු ඇත apk.Only ADTපිරිසැලසුම කර්තෘ ඉටු සන්දර්භය අනුරූප ඔබේ වත්මන් පිරිසැලසුම ගොනුව කට්ටලයට, තුළ ක්රියාකාරකම් නම් සන්දර්භය ඉටු ඔබේ වත්මන් පිරිසැලසුම ක්රියාකාරකම් සඳහා ක්රියාකාරකම් නම අනුරූප වේ පෙන්වන්න manifestගොනුව තේමාව තබා, පසුව ADTපිරිසැලසුම් සංස්කාරක විසින් ඔබගේ වර්තමාන පිරිසැලසුම තේමාවට අනුව ඉදිරිපත් කරනු ඇත.ඔබ විසින් කට්ටලය තේමාවක් සැකසුවහොත් MainActivity. ආලෝකය (අනෙකා), එවිට තේමාව කුමක් විය යුතුද යන්න පසුබිම් පාලනය දෘශ්‍ය පිරිසැලසුම් කළමණාකරු තුළ ඔබට පෙනේ. ආලෝකය පෙනේ.ඔබට පෙනෙන දේ ඔබට පෙන්වීමට පමණක් ඔබට ප්‍රති .ල ලැබේ.

සමහර අය දකින සමහරක් තේරුම් ගනීවි, සමහරු ද නොදන්නා බව දකිති, මම පැහැදිලි කිරීමේ වචන කිහිපයක් එකතු කරමි:

2. සාම්පලය

tools:textතවදුරටත් තේරුම් ගැනීමට පහසු සරල , උදාහරණයක් ලෙස තවත් රූපයක් ගන්නtools:context

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="sample name1" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="sample name2" />

රූප විස්තරය මෙහි ඇතුළත් කරන්න

TextView1 විසින් සම්මත කර android: textඇති tools:textඅතර, TextView2 හි භාවිතා කරන්න , පිරිසැලසුම් සංස්කාරකයේ දකුණු පැත්තේ sample name1, sample name2අකුරු දෙක පෙන්වනු ඇත , ඔබ කේතය සම්පාදනය කිරීමට, උත්පාදනය කළ apk, ටර්මිනල් සංදර්ශකය පමණක් ධාවනය කළහොත් වචන sample name1පෙන්වන්නේ නැත sample name2. ඔබට ධාවනය කිරීමට උත්සාහ කළ හැකිය, බලපෑම කෙසේ දැයි බලන්න.

3.විශේෂ විස්තරය

1.එය tools: context = "activity name"ඇසුරුම් නොකෙරේ apk(අවබෝධය: මෙයට සමාන අදහස් දක්වනු ලැබේ , සම්පාදනය කිසිදු බලපෑමක් නැත.)

2. ADTවත්මන් පිරිසැලසුම් ගොනුවේ අනුරූප විදැහුම්කරණ සන්දර්භය තුළ ඇති එකම පිරිසැලසුම් සංස්කාරකය (එනම්, සිමියුලේටරයේ දකුණු පැත්තේ ඇති අයිකනය සඳහා), සන්දර්භය විදැහුම් කිරීමේදී වත්මන් XML හි පිරිසැලසුම ක්‍රියාකාරීත්වයේ නම ක්‍රියාකාරීත්වයට අනුරූප වේ නම් මැනිෆෙස්ට් ගොනුවේ ක්‍රියාකාරිත්වය ADTතේමාවක් සකසයි , එවිට පිරිසැලසුම් සංස්කාරක විසින් තේමාවට අනුව ඔබගේ වර්තමාන පිරිසැලසුම ඉදිරිපත් කරනු ඇත MainActivity. ආලෝකය (වෙනත්) විය හැකිය. (තේරුම් ගන්න: ඔබ එකතු කළ පරිදි tools: context = "activity name", එක්ස්එම්එල් පිරිසැලසුම නිශ්චිත ක්‍රියාකාරකම් සිදු කරයි, මැනිෆෙස්ට් ගොනුවේ තේමාවක් ස්ථාපිත කරයි, දකුණු සිමියුලේටරයට ඉහළින් පින්තාරු කර ඇති තේමා විලාසය තේමාවට අනුරූප වෙනස්කම් ද අනුගමනය කරනු ඇත.)

4. සාරාංශය

සාරාංශයක් ලෙස, මෙම ගුණාංග ප්‍රධාන වශයෙන් ඉලක්ක කර ඇත්තේ නිවැරදි මෙවලම් වලට ඉහළින්, සිමියුලේටර් නිදොස්කරණය කිරීමේ කාල දර්ශන තත්ත්වය සහ සම්පාදනය ක්‍රියා නොකරයි,


7

“මෙවලම්: සන්දර්භය” යනු සංවර්ධන රාමුව තුළ එක්ස්එම්එල් හි පිරිසැලසුම නිර්මාණය කිරීමට පහසුකම් සපයන සැලසුම් ගුණාංගවලින් එකකි. පිරිසැලසුම ක්‍රියාත්මක කිරීම සඳහා තෝරාගත් ක්‍රියාකාරකම් පන්තිය කුමක්ද යන්න සංවර්ධන රාමුව පෙන්වීමට මෙම ගුණාංගය භාවිතා කරයි. “මෙවලම්: සන්දර්භය” භාවිතා කරමින්, ඇන්ඩ්‍රොයිඩ් ස්ටුඩියෝ ස්වයංක්‍රීයව පෙරදසුන සඳහා අවශ්‍ය තේමාව තෝරා ගනී.

ඇන්ඩ්‍රොයිඩ් යෙදුම් සංවර්ධනය සඳහා වෙනත් ගුණාංග සහ ප්‍රයෝජනවත් මෙවලම් ගැන වැඩි විස්තර දැන ගැනීමට ඔබ කැමති නම්, මෙම සමාලෝචනය දෙස බලන්න: http://cases.azoft.com/4-must-know-tools-for-effective-android -වර්ධනය/


3

මෙය හොඳම විසඳුමයි: https://developer.android.com/studio/write/tool-attributes

මෙය xml වැනි ක්‍රියාකාරී සන්දර්භය සැකසිය හැකි නිර්මාණ ලක්ෂණ වේ

tools:context=".activity.ActivityName"

ඇඩැප්ටරය:

tools:context="com.PackegaName.AdapterName"

රූප විස්තරය මෙහි ඇතුළත් කරන්න

සලකුණු කරන ලද අයිකනය මත ක්ලික් කිරීමේදී ඔබට ජාවා පන්තියට යා හැකිය, මෙවලම් වැනි තවත් විශේෂාංග ඇත

tools:text=""
tools:visibility:""
tools:listItems=""//for recycler view 

etx


0

tools:context=".MainActivity" මෙම රේඛාව xml ගොනුවේ භාවිතා වන අතර එයින් පෙන්නුම් කරන්නේ මෙම xml ගොනුවට ප්‍රවේශ වීම සඳහා කුමන ජාවා ප්‍රභව ගොනුව භාවිතා කරනවාද යන්නයි. එහි තේරුම perticular java ගොනු සඳහා මෙම xml පෙරදසුන පෙන්වන්න.


0
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    //more views

</androidx.constraintlayout.widget.ConstraintLayout>

ඉහත කේතය තුළ, මෙවලම්වල මූලික අවශ්‍යතාවය: සන්දර්භය යනු පිරිසැලසුම් ගොනුව පෙරනිමියෙන් සම්බන්ධ වන්නේ කුමන ක්‍රියාකාරකමක් හෝ කැබැල්ලක් දැයි පැවසීමයි. එබැවින්, මැනිෆෙස්ට් ගොනුවේ භාවිතා කර ඇති තිත් උපසර්ගය භාවිතා කර ක්‍රියාකාරකම් පන්තියේ නම සඳහන් කළ හැකිය.

එසේ කිරීමෙන්, ඇන්ඩ්‍රොයිඩ් ස්ටුඩියෝ විසින් පෙරදසුන සඳහා අවශ්‍ය තේමාව ස්වයංක්‍රීයව තෝරා ගනු ඇති අතර ඔබ පෙරදසුන් සැකසීම් අතින් කළ යුතු නොවේ. පිරිසැලසුම් ගොනුවක් ක්‍රියාකාරකම් කිහිපයක් සමඟ සම්බන්ධ කළ හැකි බව අපි කවුරුත් දන්නා නමුත් තේමාවන් මැනිෆෙස්ට් ගොනුවේ අර්ථ දක්වා ඇති අතර මෙම තේමාවන් ඔබගේ ක්‍රියාකාරකම් සමඟ සම්බන්ධ වේ. එබැවින්, මෙවලම් එකතු කිරීමෙන්: ඔබගේ පිරිසැලසුම් ගොනුවේ සන්දර්භය, ඇන්ඩ්‍රොයිඩ් ස්ටුඩියෝ පෙරදසුන ඔබට අවශ්‍ය තේමාව ස්වයංක්‍රීයව තෝරා ගනු ඇත.


0

ඔබගේ පිරිසැලසුම හා සම්බන්ධ ක්‍රියාකාරකම් පිළිබඳ හොඳම දැනුමක් ලබා ගැනීමට මෙම ගුණාංගය උපකාරී වේ. ක්වික්ෆික්ස් භාවිතයෙන් දර්ශනයක් මත ඔන්ක්ලික් හෑන්ඩ්ලර්ස් එක් කිරීමට සිදු වූ විට මෙය ද ප්‍රයෝජනවත් වේ.

tools:context=".MainActivity"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.