రిసైక్లర్ వ్యూ ఆండ్రాయిడ్ స్టూడియోలో యాప్ క్రియేట్ చేయడం. ఒక అన్ లిమిటెడ్ లిస్టును ఒక స్క్రీనులో చూపించాలంటే రిసైక్లర్ వ్యూ ఉపయోగించాలి. ఈ రిసైక్లర్ వ్యూతో ఎంత పెద్ద లిస్టును అయినా ఒక స్క్రీనుపై చూపించవచ్చును.
అన్ లిమిటెడ్ గా ఏదైనా బిగ్ డేటా లిస్టులు వంటివి డిస్ల్పే చేయడానికి రిసైక్లర్ వ్యూ విడ్జెట్ నే ఉపయోగిస్తారు.
ప్లేస్టోర్ నందు యాప్స్ అన్ లిమిటెడ్ గా వస్తూనే ఉంటాయి… అటువంటి యాప్స్ నందు రిసైక్లర్ వ్యూ విడ్జెట్ నే ఉపయోగిస్తారు. లిస్టువ్యూను సింపిల్ లిస్టులు డిస్ల్పే చేయడానికే ఉపయోగిస్తారు.
అయితే రిసైక్లర్ వ్యూ విడ్జెట్ ను ఒక ఏక్టివిటిలో లేదా ఒక ఫ్రాగ్మెంట్ లో ఉపయోగించవచ్చును.
ఏక్టివిటి కానీ ఫాగ్రెంట్ కానీ కొత్తది తీసుకుంటే, వాటికి ఎక్స్.ఎం.ఎల్ ఫైల్ మరియు జావా ఫైల్ రెండూ క్రియేట్ అవుతాయి.
ఒక ఆండ్రాయిడ్ మొబైల్ యాప్ ప్రొజెక్టులో ఎన్ని ఏక్టివిటిస్ అయినా, ఎన్ని ఫ్రాగ్మెంట్స్ అయినా కొత్తవి క్రియేట్ చేయవచ్చును.
ఈ ప్రొజెక్టులో ప్రొజెక్టులో ఓపెన్ చేస్తున్నప్పుడే క్రియట్ అయిన, డిఫాల్ట్ మెయిన్ ఏక్టివిటిలో రిసైక్లర్ వ్యూ విడ్జెట్ ఉపయోగిద్దాం.
రిసైక్లర్ వ్యూ ఆండ్రాయిడ్ స్టూడియోలో యాప్ రిసైక్లర్ వ్యూ కు అవసరం అయ్యే ఫైల్స్
- ఏక్టివిటి (ఎక్స్.ఎం.ఎల్ ఫైల్ అండ్ జావా ఫైల్)
- మోడల్ (జావా ఫైల్)
- ఏడాప్టర్ (జావా ఫైల్)
- ఐటెమ్ లేఅవుట్ (ఎక్స్.ఎం.ఎల్ ఫైల్)
ఏక్టివిటి (ఎక్స్.ఎం.ఎల్ ఫైల్ అండ్ జావా ఫైల్)
- రిసైక్లర్ వ్యూ విడ్జెట్ డిస్ప్లే చేసే ఎక్స్.ఎం.ఎల్ ఫైల్ (ఇది డిఫాల్ట్ మెయిన్ ఏక్టివిటిలో ఉపయోగించవచ్చును. లేదా కొత్త ఏక్టివిటి లేదా కొత్త ఫ్రాగ్మెంట్ క్రియేట్ చేయవచ్చును.)
- ఏక్టివిటి.మెయిన్.ఎక్స్.ఎం.ఎల్ ఫైలుకు అనుసంధానించబడిని జావా ఫైల్. ఈ జావా ఫైల్ ఎక్స్.ఎం.ఎల్ ఫైల్లో తీసుకున్న రిసైక్లర్ వ్యూ విడ్జెట్ ను శాసించే కోడ్ వ్రాస్తాము.
మోడల్ (జావా ఫైల్)
మోడల్ అంటే రిసైక్లర్ వ్యూలో కనిపించే లిస్టు ఏవిధంగా ఉండాలో, అందులో ఉండే ఐటమ్స్ ముందుగానే సూచన చేయడం.
రిసైక్లర్ వ్యూలో పేరు, ఇంటి పేరు రెండింటిని చూపించాలి. అప్పుడు మోడల్ జావా క్లాసులో రెండు డేటా టైప్స్ డిక్టేర్ చేస్తాము.
ఆ తర్వాత మోడల్ క్లాస్ నందు డిక్లేర్ చేసిన వేరియబుల్స్ కు కన్సట్రక్టర్ క్రియేట్ చేయాలి.
కన్సట్రక్టర్ క్రియేట్ చేశాకా, అవే వేరియబుల్స్ కు గెట్టర్ అండ్ సెట్టర్ సెట్ చేస్తాం… దాంతో మోడల్ క్లాసు పని పూర్తవుతుంది. ఇది ఈ ప్రొజెక్టు వరకు. సాదారణంగా రిసైక్లర్ వ్యూ ఐటమ్స్ డిస్ల్పే చేయడం వరకు అయితే… ఇంతే…
మీరు ఇంకా ప్రొజెక్టులో ఐడి, యాక్షన్స్ వంటివి యాడ్ చేస్తే, మోడల్ క్లాస్ నందు మరింత కోడ్ వ్రాయాలి.
ఏడాప్టర్ (జావా ఫైల్) రిసైక్లర్ వ్యూ యాప్ ఆండ్రాయిడ్ స్టూడియోలో
ఎడాప్టర్ జావా ఫైల్ పేరులోనే ఉంది… ఏడాప్ట్ అంటే డేటాను కలపడం… ఒక మోడల్ విధానం ఏవిధంగా ఉందో, ఆవిధానం ప్రకారం అదనంగా తీసుకోబడిన లేఅవుట్ ఫైలు ద్వారా రిసైక్లర్ వ్యూలో డేటాను ఎడాప్ట్ చేస్తుంది.
ఇది చాలా కీలకమైన జావా ఫైల్. దీని ద్వారానే రిసైక్లర్ వ్యూని శాసిస్తాం… ప్రస్తుతం మన పేర్లు, ఇంటి పేర్లు డిస్ల్పే చేయడానికి సింపుల్ ఎడాప్టర్ ఉపయోగిస్తాం…
పెద్ద పెద్ద ప్రొజెక్టులకు అయినా ఎడాప్టర్ లో ఆటో క్రియేట్ చేయబడేవి కామన్ గానే ఉంటాయి. మీరు ఎంచుకున్న మోడల్ ను బట్టి ఎడాప్టర్ క్లాసులో జావా కోడ్ పెరుగుతుంది.
సింపుల్ మోడల్ కు ఎడాప్టర్ లో సింపుల్ కోడ్ ఉంటుంది.
ఐటెమ్ లేఅవుట్ (ఎక్స్.ఎం.ఎల్ ఫైల్)
ఐటెమ్ లేఅవుట్ ఎక్స్.ఎం.ఎల్ ఫైల్. ఇది రిసైక్లర్ వ్యూ లో చూపించ లిస్టుకు సంబంధించిన సింగిలో రో ఐటమ్ డిజైన్.
అంటే మీరు ఐడి, ఇమేజ్, పేరు, అడ్రస్, వివరం ఇలా అయిదు రకాలు రిసైక్లర్ వ్యూలో చూపించాలి.
ఐడికి ఒక టెక్ట్స్ వ్యూ, ఇమేజ్ కు ఒక ఇమేజ్ వ్యూ, పేరుకు ఒక టెక్ట్స్ వ్యూ, అడ్రస్ కు ఒక టెక్ట్స్ వ్యూ, వివరం ఒక టెక్ట్స్ వ్యూ అలా అయిదు విడ్జెట్లను ఏవిధంగా ఒక రోలో కనబడాలో డిజైన్ చేయాలి.
అయితే ఈ ప్రొజెక్టులో చూపించేది కేవలం పేరు, ఇంటిపేరు రెండు మాత్రమే. కాబట్టి ఇందులో రెండు టెక్ట్స్ వ్యూలు ఉపయోగిస్తాము. అవి ఒకదాని ప్రక్కన కనబడాలా? ఒక దాని క్రింద ఒకటి కనబడాలా? దానిని బట్టి ఈ లేఅవుట్ డిజైన్ చేసుకోవాలి.
ఈఐటమ్ లేఅవుట్ ఫైల్ ఏవిధంగా డిజైన్ చేస్తే, అదేవిధంగా రిసైక్లర్ వ్యూలో రోస్ కనబడతాయి.
ఈవిధంగా ఐటమ్ లేఅవుట్ ఎక్స్.ఎం.ఎల్ ఫైల్ ను ఎడాప్టర్ ద్వారా అనుసంధానం చేస్తూ, అదే ఎడాప్టర్ ద్వారా మోడల్ లిస్టును అనుసంధానం చేస్తూ, ఎడాప్టర్ ను ఏక్టివిటిలో రిసైక్లర్ వ్యూకు ఎటాచ్ చేయడంతో… రిసైక్లర్ వ్యూ డిజైన్ కోడింగ్ పూర్తవుతుంది.
ఇంకా డిజైన్ చేసిన రిసైక్లర్ వ్యూలో డేటా ఇన్ పుట్ ఇవ్వాలి. ఇది ఆన్ లైన్ వెబ్ సైట్ డేటా అయితే ఎడాప్టర్ కోడ్ మారుతుంది.
అదే ఇన్ పుట్ డేటా మాన్యువల్ గా ఆండ్రాయిడ్ స్టూడియోలో ఒక ఫైల్లో స్టోర్ చేసి, రిసైక్లర్ వ్యూలో చూపించవచ్చును. అప్పుడు ఏక్టివిటిలో కోడ్ పెరుగుతుంది.
ఇన్ పుట్ డేటా కేవలం రిసైక్లర్ వ్యూ విడ్జెట్ ఉపయోగిస్తున్న ఏక్టివిటిలోనే ఉన్న జావా ఫైల్ లోనే వ్రాస్తే, కోడ్ సింపుల్ గా ఉంటుంది.
ఈ ప్రొజెక్టులో రిసైక్లర్ వ్యూ లోనే ఇన్ పుట్ డేటా తీసుకుంటాము.
రిసైక్లర్ వ్యూ ఆండ్రాయిడ్ స్టూడియో యాప్ ప్రొజెక్టు ఇమేజులతో
ఈక్రింది ఇమేజులో రిసైక్లర్ వ్యూ విడ్జెట్ కోడ్ వ్రాయబడి ఉంది. ఇది మెయిన్ ఏక్టివిటి ఎక్స్.ఎం.ఎల్ ఫైల్… ఇప్పుడు దీనికి మోడల్ కావాలి… అంటే మోడల్.క్లాస్ అనే జావా ఫైల్ కావాలి.

మోడల్.క్లాస్ జావా ఫైల్ క్రియేట్ చేయాలి. ఈ క్రింది ఇమేజులో add to list అనే ఇంగ్లీషు అక్షరాలు బ్లూకలర్ బ్యాక్ గ్రౌండుతో హైలెట్ చేయబడి ఉన్నాయి. అక్కడ మౌజ్ పాయింటర్ పెట్టి, రైట్ క్లిక్ చేస్తే, సైడుగా ఒక మెను వస్తుంది.
అందులో మీరు మరలా New అనే ఇంగ్లీషు అక్షరాలను క్లిక్ చేస్తే, ఆ సైడుగా మరొక సబ్ మెను వస్తుంది. అందులో మరలా Java Class అనే ఇంగ్లీషు అక్షరాలను క్లిక్ చేస్తే, ఈ క్రింది ఇమేజులో చూపిన విధంగా పోప్ అప్ విండో వస్తుంది.
ఆ పోప్ అప్ విండోలో Name అనే ఇంగ్లీషు అక్షరాల దగ్గర మౌస్ కర్సర్ బ్లింక్ అవుతుంది. అక్కడ మీ మోడల్ జావాఫైల్ పేరు టైపు చేసి ఎంటర్ చేయాలి.
గమనించండి… ఆ పోప్ అప్ విండోలోనే Class అనే ఆంగ్ల అక్షరాలు బ్లూకలర్ బ్యాక్ గ్రౌండుతో హైలెట్ కాబడి ఉంది. అంటే మీరు పేరు టైపు చేసి ఎంటర్ చేస్తే, అది క్లాస్ ఫైల్ గా తీసుకుంటుంది.
అలా ఇంటర్ పేస్ ఎంపిక చేసుకంటే, ఇంటర్ పేస్ ఫైల్ క్రియేట్ అవుతుంది…

పై ఇమేజులో పోప్ అప్ విండోలో మోడల్ క్లాస్ ఫైల్ పేరు ModelName అని తీసుకోవడం జరిగింది.
ఈ క్రింది ఇమేజ్ చూడండి. అందులో publick class ModelName అని ఫ్లవర్ బ్రాకెట్స్ తో క్లాస్ ఫైల్ క్రియేట్ అయ్యింది.

రెండ్ స్ట్రింగ్ వేరియబుల్స్
ఫ్లవర్ బ్రాకెట్ల మద్యలో రెండు స్ట్రింగ్ వేరియబుల్స్ తీసుకోవాలి. ఒకటి ఫస్ట్ నేమ్, రెండు లాస్ట్ నేమ్ కానీ సర్ నేమ్ కానీ… ఏవైనా రెండ్ స్ట్రింగ్ వేరియబుల్స్ డిక్లేక్ చేయండి.
క్రింది ఇమేజులో String name, String sir_name రెండు స్ట్రింగ్ వేరియబుల్స్ డిక్లేర్ అయ్యాయి… వీటికి కన్సట్రక్టర్ క్రియేట్ చేయాలి.

దానికి ఫ్లవర్ బ్రాకెట్స్ మద్యలో కర్సర్ ఉండగా… మీ కీబోర్డులో Alt+Insert రెండు బటన్స్ ఒకే సారి ప్రెస్ చేయాలి.
ఈ క్రింది ఇమేజులో మాదిరిగా పోప్ అప్ మెను వస్తుంది…

పై ఇమేజ్ చూడండి. అందులో కన్సట్రక్టర్ (constructor) బ్లూకలర్ బ్యాక్ గ్రౌండుతో హైలెట్ కాబడి ఉంది. దానిపై క్లిక్ చేస్తే, మీకు మరొక పోప్ అప్ విండో వస్తుంది. ఈ క్రింది ఇమేజ్ మాదిరిగా ఉంటుంది.

పైచిత్రంలో చూపినట్టుగా మీరు మోడల్ తీసుకున్న రెండు వేరియబల్స్ కు కన్సట్రక్టర్ క్రియేట్ చేయాలి. కాబట్టి కనబడుతున్న రెండింటిని కూడా బ్లూకలర్ బ్యాక్ గ్రౌండుతో హైలెట్ అయ్యేలా చూసుకుని ఒకె బటన్ క్లిక్ చేయాలి.
అప్పుడు మీకు క్రింది ఇమేజులో మాదిరిగా కన్సట్రక్టర్ క్రియేట్ అవుతుంది.

కన్ట్స్రక్టర్ క్రియేట్ అయ్యాక, అవే వేరియబుల్స్ కు గెట్టర్ అండ్ సెట్టర్ సెట్ చేయాలి.
Alt+Insert బటన్స్ మరలా ప్రెస్ చేస్తే, క్రింది ఇమేజులో చూపిన విధంగా Getter and Setter అనే ఇంగ్లీషు అక్షరాలు బ్లూకలర్ బ్యాక్ గ్రౌండుతో హైలెట్ చేయబడి ఉన్నాయి.

పైన ఉన్న ఇమేజులో చూపినట్టుగా Getter and Setter ఇంగ్లీషు అక్షరాలపై క్లిక్ చేస్తే క్రిందివిధంగా మరొక పోప్ అప్ విండో వస్తుంది.

కన్సట్రక్టర్ మాదిరిగానే గెట్టర్ అండ్ సెట్టర్స్ కూడా రెండు స్ట్రింగులకు జనరేట్ చేయాలి.
ఆ తర్వాత మోడల్ క్లాస్ జావా ఫైల్ క్రియేట్ చేసిన విధంగానే మరలా లెఫ్ట్ సైడులో ఉన్న ప్యాకేజి నేమ్ పై రైట్ క్లిక్ చేసి, ఎడాప్టర్ క్లాస్ ఫైల్ క్రియేట్ చేయాలి….
ఎడాప్టర్ జావా క్లాస్ ఫైల్
అలా క్రియేట్ చేసిన ఎడాప్టర్ ఫైల్ ఈ క్రింది ఇమేజులో మాదిరిగా ఉంటుంది.

పై ఎడాప్టర్ క్లాసు ఫైలులో ఉన్న కోడ్ గమనించండి….
ఆ కోడ్ ఈ విధంగా ఉంది. ముందుగా ఉన్న లైన్ ప్యాకెజి నేమ్… తర్వాత క్లాస్ క్రింది విధంగా ఉంది.
public class MyAdapter{
}
పై ఉన్న కోడ్ నందు ఉన్న మొదటి ఫ్లవర్ బ్రాకెట్ కు ముందు MyAdapter ఇంగ్లీషు అక్షరాల తర్వాత ఆ రెండింటి మద్యలో ఈ క్రింది ఇంగ్లీషు పదాలు వ్రాయాలి.
extends RecyclerView.Adapter<MyAdapter.MyViewHolder> అలా ఈ అక్షరాలు వ్రాసిన తర్వాత క్లాసు ఫైల్ ఎర్రర్ లైనుతోనూ, ఎర్రర్ టెక్ట్సుతోనూ కనబడుతుంది. ఈ క్రింది ఇమేజులో ఉన్నట్టుగా…

పైన ఉన్న ఇమేజులో ఎర్రర్ వర్డ్ MyViewHolder అనే పదంపై మౌజ్ పెడితే, రెడ్ బల్బ్ సింబల్ ఒక్కటి స్కీనుపై కనబడుతుంది.
ఆ రెడ్ బల్బ్ నందు గల ఏరో మార్కును క్లిక్ చేయగానే పోప్ అప్ మెను వస్తుంది.
దానిలో Create class ‘MyViewHolder’ అని బ్లూకలర్ బ్యాక్ గ్రౌండులో హైలెట్ చేయబడిన ఇంగ్లీషు అక్షరాలపై క్లిక్ చేయాలి.
పబ్లిక్ క్లాస్ క్రియేట్ అవుతుంది. మరలా ఎర్రర్ లైన్ అలానే కనబడుతుంది. మరలా ఎర్రర్ లైనుపై మౌస్ మూవ్ చేస్తే, రెడ్ బల్బ్ కనబడుతుంది.
ఈసారి రెడ్ బల్బ్ మెనులో క్రింది ఇమేజులో కనబడుతున్నట్టు Implement methods అను ఇంగ్లీషు అక్షరాలు బ్లూకలర్ బ్యాక్ గ్రౌండుతో హైలెట్ అయ్యి కనబడుతున్న అక్షరాలను క్లిక్ చేయాలి.

ఈ క్రిందిఇమేజులో మాదిరి ఇంప్లిమెంటేషన్ మెథడ్స్ పోపప్ విండోలో కనబడతాయి.

ఇంప్లిమెంట్ మెధడ్స్ యాడ్ అయ్యాక ఎడాప్టర్ ఫైల్ ఈ క్రింది ఇమేజులో ఉన్న విధంగా ఇంకా ఎర్రర్ లైన్ కనబడుతూ ఉంటుంది.
ఆ ఎర్రర్ లైను మరలా మౌస్ తీసుకువెళితే, మరలా రెడ్ బల్బ్ మెనులో ఉన్న బ్లూకర్ బ్యాక్ గ్రౌండుతో హైలెట్ చేయబడిన లైను చూడండి.

ఆ పై క్లిక్ చేయగానే, మైవ్యూహోల్డర్ క్లాస్ ఎక్ట్సెంట్ అవుతుంది. అలా ఎక్ట్సెండ్ అయిన వ్యూక్లాస్ ఫైల్ ఎర్రర్ లైన్ కలిగి ఉంటుంది.
దానిపై మౌస్ పాయింటర్ మూవ్ చేస్తే, వచ్చే మెనులో Create constructor matching super అను ఇంగ్లీషు అక్షరాలపై క్లిక్ చేయాలి.

రిసైక్లర్ వ్యూ హోల్డర్ క్లాసుకు కూడా కన్సట్రక్టర్ క్రియేట్ చేశాక ఎడాప్టర్ క్లాస్ ఫైల్ ఈ క్రింది ఇమేజులో విధంగా ఉంటుంది.

ఇక్కడతో ఎడాప్లర్ క్లాసులో ఆటోమెటిక్ జనరేషన్ కోడ్ పూర్తవుతుంది.
ఈ ఎడాప్టర్ క్లాసులో కోడ్ మాన్యువల్ గా వ్రాయడం…
పైచిత్రంలో onCreateViewHolder మెథడ్ ఉంది. అందులో రిసైక్లర్ వ్యూలో చూపించవలసిన రో ఐటమ్ ను ఇన్ ఫ్లేట్ చేయాలి. అందుకు ముందుగా లేఅవుట్ ఫైల్ క్రియేట్ చేయాలి.
అందుకు పైఇమేజులో చూస్తే లెఫ్ట్ సైడులో ఉన్న res అని మూడు అక్షరాలు కలిగిన ఫోల్డర్ పై క్లిక్ చేస్తే, layout అనే ఆంగ్ల అక్షరాలతో మరొక ఫోల్డర్ వస్తుంది.
ఆ ఫోల్డర్ పై మౌస్ పాయింటర్ ఉంచి, రైట్ క్లిక్ చేస్తే, సైడుగా మెను వస్తుంది. అందులో New ఇంగ్లీషు అక్షరాలపై క్లిక్ చేయగానే ప్రక్కగా మరొక సబ్ మెను వస్తుంది. అందులో లేఅవుట్ రిసోర్స్ ఫైల్ పై క్లిక్ చేయాలి.

పై చిత్రంలో మీకు వచ్చిన లేవుట్ ఫైల్ డిజైనింగ్ కోడ్ వ్రాయాలి. ఈ క్రింది ఇమేజులో మాదిరిగా ఉంటంది.

ఈపైనగల ఇమేజులో లైనర్ లేఅవుట్ ఓరియంటేషన్ వెర్టికల్ తీసుకోవడం జరిగింది. అందువలన ఆ లేవుట్లో ఎన్ని విడ్జెట్స్ తీసుకున్నా ఒకదాని తర్వాత ఒక్కటిగా నిలువుగా సెట్ అవుతాయి.
రెండు టెక్ట్సు వ్యూస్ పైన ఉన్న ఇమేజులో చూపించడం జరిగింది. ఒకటి ఫస్ట్ నేమ్, రెండవది లాస్ట్ నేమ్…
ఎడాప్టర్ క్లాసులో మొదటిగా రెండు వేరియబుల్స్ ఈక్రింది విధంగా డిక్లేర్ చేయాలి.
Context context;
List<ModelName> nameList;
ఈపై రెండు వేరియబుల్స్ కు కనస్ట్రక్టర్ క్రియేట్ చేయాలి. ఆ కోడ్ ఈ క్రింది విధంగా వస్తుంది.
public MyAdapter(Context context, List<ModelName> nameList) {
this.context = context;
this.nameList = nameList;
}
ఇప్పుడు లేఅవుట్ ఫైలును ఎడాప్టర్ యాడ్ చేయాలి. అందుకు ఆన్ క్రియేట్ కోడ్ ను ఈ క్రింది విధంగా మార్చాలి.
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.recycle_item_layout,parent,false);
return new MyViewHolder(view);
}
ఐటమ్ లేఅవుట్ ఫైల్ యాడ్ చేశాకా, getItemcount మెథడ్ ఈక్రింది విధంగా మార్చాలి.
@Override
public int getItemCount() {
return nameList.size();
}
ఇప్పుడు MyViewHolder పబ్లిక్ క్లాసులో ఇందాక క్రియేట్ చేసిన లేవుట్ ఫైల్లోని ఐటమ్స్ ని అనుసంధానం చేయాలి. ఆ కోడ్ ఈ క్రిందివిధంగా ఉంటుంది.
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView first_name, last_name;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
first_name = itemView.findViewById(R.id.first_name);
last_name = itemView.findViewById(R.id.last_name);
}
తర్వాత onBindViewHolder మెథడులో ఐటమ్స్ కు ఇన్ పుట్ డేటా బైండ్ చేయాలి. ఆ కోడ్ ఈ క్రింది విధంగా ఉంటుంది.
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.recycle_item_layout,parent,false);
return new MyViewHolder(view);
}
దీంతో ఐటమ్ లేఅవుట్ ఫైలు, మోడల్ క్లాసు ఎడాప్టర్ కు అనుసంధానం చేయడం జరిగింది. ఏదైనా ఫైల్ కాపీ పేస్ట్ చేయవచ్చును… కానీ ఎడాప్టర్ క్లాసులో మెథడ్స్ వారీగా జనరేట్ చేసుకుంటూ, కాపీ పేస్ట్ చేయాలి కానీ ఒకేసారి ఫైల్ కోడంతా కాపీ పేస్ట్ చేస్తే మాత్రం ఒక్కోసారి ఎర్రర్ షో అవుతుంది.
మైఎడాప్టర్ క్లాసు ఈ ప్రొజెక్టువరకు మాత్రం ఫైనల్ గా ఈ క్రింది ఇమేజులో మాదిరిగా ఉంటుంది.

ఎడాప్టర్, మోడల్ క్లాసులను ఏక్టివిటిలోకి అనుసంధానం చేయడం
ఏక్టివిటిలో మెయిన్ఏక్టివిటి జావా ఫైల్ లో లిస్ట్, రిసైక్లర్ వ్యూ, లేఅవుట్ మేనేజర్, మైడాప్టర్ నాలుగు ముందుగా వేరియబుల్స్ గా డిక్లేర్ చేయాలి.
List<ModelName> nameList = new ArrayList<>();
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
MyAdapter adapter;
ఈ క్రింది ఇమేజ్ చూడండి.

పైఇమేజులో ఉన్న విధంగా కోడ్ యాడ్ చేశాక…
ఈక్రింది కోడ్ చూడండి… రిసైక్లర్ వ్యూ విడ్జెట్ ఐడితో కాల్ చేస్తున్నాం.
recyclerView = findViewById(R.id.myRecyclerView);
రిసైక్లర్ వ్యూ విడ్జెట్ కాల్ చేశాక… ఆ రిసైక్లర్ వ్యూకి లేఅవుట్ మేనేజర్ ను అనుసంధానం చేయడం… ఈ క్రింది కోడ్ చూడండి.
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
ఇప్పుడు రిసైక్లర్ వ్యూకు మైఎడాప్టర్ ను అనుసంధానం చేయాలి. ఈ క్రింది కోడ్ చూడండి.
adapter = new MyAdapter(this,nameList);
recyclerView.setAdapter(adapter);
దీంతో ఏక్టివిటికి అంటే రిసైక్లర్ వ్యూ యూజరు కనబడే విధంగా తీసుకున్న స్క్రీనులోకి ఎడాప్టర్ ద్వారా మోడల్, లేఅవుట్ ఐటమ్, లేఅవుట్ మేనేజర్, ఎర్రేలిస్టు అనుసంధానం చేశాము.
ఇక ఇప్పుడు ఆ లిస్టులోకి ఇన్ పుట్ డేటా ఇవ్వాలి. అందుకు ఏదైనా ఒక పేరుతో మెథడ్ కాల్ చేయాలి. addNames(); అనే పేరుతో ఒక మెథడ్ కాల్ చేశాను. ఆ మెథడులో కోడ్ ఈ క్రింది విధంగా ఉంటుంది.
private void addNames() {
ModelName name = new ModelName("చిరంజీవి","కొణెదల");
nameList.add(name);
name = new ModelName("బాలకృష్ణ","నందమూరి");
nameList.add(name);
name = new ModelName("నాగార్జున","అక్కినేని");
nameList.add(name);
name = new ModelName("వెంకటేష్","దగ్గుబాటి");
nameList.add(name);
name = new ModelName("మహేశ్","ఘట్టమనేని");
nameList.add(name);
name = new ModelName("మహేశ్","ఉప్పలపాటి");
nameList.add(name);
name = new ModelName("పవన్ కళ్యాణ్","కొణెదల");
nameList.add(name);
name = new ModelName("రామ్","పోతినేని");
nameList.add(name);
name = new ModelName("నాని","ఘంటా");
nameList.add(name);
name = new ModelName("గోపిచంద్","తొట్టెంపూడి");
nameList.add(name);
}
ఇన్ పుట్ డేటా కోడ్ యాడ్ చేయడంతో ఒక రిసైక్లర్ వ్యూ కోడింగ్ వ్రాయడం పూర్తయింది. మెయిన్ఏక్టివిటి.జావా ఫైల్ ఈ క్రింది ఇమేజులో..

చివరగా అవుట్ పుట్ ఈ క్రింది ఇమేజులో మాదిరిగా ఉంటుంది.

ఇదే రెండు పేర్లను ఒకదాని ప్రక్కగా ఒక్కటిగా కనిపించే అనేక వరుసలను ఒకే స్క్రీనులో చూపే రీసైక్లర్ వ్యూ…
పూర్తిగా ఒక ఫస్ట్ నేమ్, సర్ నేమ్ లతో కూడిన రీసైక్లర్ వ్యూ యొక్క పుల్ కోడ్ ఫైల్స్ ఈ క్రిందగా చూడండి…
ModelName.java
package add.to.list;
public class ModelName {
String name;
String sir_name;
//press at a time Alt+Insert buttons on your keyboard
public ModelName(String name, String sir_name) {
this.name = name;
this.sir_name = sir_name;
}
//press again Alt+Insert buttons on your keyboard
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSir_name() {
return sir_name;
}
public void setSir_name(String sir_name) {
this.sir_name = sir_name;
}
}
MyAdapter.java
package add.to.list;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
Context context;
List<ModelName> nameList;
public MyAdapter(Context context, List<ModelName> nameList) {
this.context = context;
this.nameList = nameList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.recycle_item_layout,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.first_name.setText(nameList.get(position).getName());
holder.last_name.setText(nameList.get(position).getSir_name());
}
@Override
public int getItemCount() {
return nameList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView first_name, last_name;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
first_name = itemView.findViewById(R.id.first_name);
last_name = itemView.findViewById(R.id.last_name);
}
}
}
recycle_item_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:background="@color/black"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10">
<TextView
android:id="@+id/first_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:padding="15dp"
android:text="First name"
android:textSize="20sp"/>
<TextView
android:id="@+id/last_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:padding="15dp"
android:text="Last name"
android:textSize="20sp"/>
</LinearLayout>
</LinearLayout>
activity_man.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Recycler View"
android:textSize="18sp"
android:padding="10dp"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/myRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/black"
android:dividerHeight="1dp"/>
</LinearLayout>
MainActivity.java
package add.to.list;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
List<ModelName> nameList = new ArrayList<>();
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.myRecyclerView);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
adapter = new MyAdapter(this,nameList);
recyclerView.setAdapter(adapter);
addNames();
}
private void addNames() {
ModelName name = new ModelName("చిరంజీవి","కొణెదల");
nameList.add(name);
name = new ModelName("బాలకృష్ణ","నందమూరి");
nameList.add(name);
name = new ModelName("నాగార్జున","అక్కినేని");
nameList.add(name);
name = new ModelName("వెంకటేష్","దగ్గుబాటి");
nameList.add(name);
name = new ModelName("మహేశ్","ఘట్టమనేని");
nameList.add(name);
name = new ModelName("మహేశ్","ఉప్పలపాటి");
nameList.add(name);
name = new ModelName("పవన్ కళ్యాణ్","కొణెదల");
nameList.add(name);
name = new ModelName("రామ్","పోతినేని");
nameList.add(name);
name = new ModelName("నాని","ఘంటా");
nameList.add(name);
name = new ModelName("గోపిచంద్","తొట్టెంపూడి");
nameList.add(name);
name = new ModelName("శ్రీకాంత్","మేకా");
nameList.add(name);
name = new ModelName("వేణు","తొట్టెంపూడి");
nameList.add(name);
name = new ModelName("అర్జున్","అల్లు");
nameList.add(name);
name = new ModelName("రానా","దగ్గుబాటి");
nameList.add(name);
name = new ModelName("తారకరామారావు","నందమూరి");
nameList.add(name);
name = new ModelName("విజయ్","దేవరకొండ");
nameList.add(name);
name = new ModelName("రామ్ చరణ్","కొణెదల");
nameList.add(name);
name = new ModelName("మోహన్ బాబు","మంచు");
nameList.add(name);
name = new ModelName("నరేష్","ఇవివి");
nameList.add(name);
name = new ModelName("కళ్యాణ్ రామ్","నందమూరి");
nameList.add(name);
}
}
మరిన్ని తెలుగురీడ్స్ వ్యాసాలు
నాయకత్వం నాయకత్వ లక్షణాలు తెలుగు వ్యాసం
తెలుగు భాష గొప్పతనం గురించి వ్యాసం
రామాయణం ప్రాశస్త్యాన్ని వివరిస్తూ తెలుగు వ్యాసం
మాట తీరు ప్రాముఖ్యత గురించి తెలుగులో వ్యాసం
రైతు దేశానికి వెన్నుముక తెలుగులో వ్యాసం
గ్రంధాలయాలు గురించి తెలుగులో వ్యాసం వ్రాయండి.
నిత్య జీవితంలో భగవద్గీత ఎందుకు చదవాలి? తెలుగులో వ్యాసం
మన పరిసరాల పరిశుభ్రత మన ఆరోగ్య రక్షణ
ఒంటరిగా ఉన్నప్పుడు పుస్తకం నేస్తంగా ఉంటుంది
పొదుపు ప్రయోజనాలు తెలుగులో వ్యాసం
గొప్పవాళ్ళే లోకహితమైన కార్యాలు ఎందుకు చేస్తారో
అందమైన పల్లెటూరు గురించి తెలుగులో వ్యాసం
చెట్లను కాపాడండి చెట్ల వలన మనకు
సంకల్పం బలమైనది అయితే మనల్ని ఎవరూ ఆపలేరు!
డబ్బు సంపాదన మార్గాలు వ్యాసం రాయడంతో
మాతృభాషలో విద్య మీరు సమర్థిస్తారా?
కుటుంబ వ్యవస్థ బాగా కొనసాగాలంటే మనమేం చేయాలి
వృద్యాప్యంలో ఉన్నవారికి వారసులు తోడుగా ఉండాలి వ్యాసం
వార్తా పత్రికలు గురించి తెలుగులో వ్యాసం
నేటి రాజకీయాల పై మీ అభిప్రాయం మీ మాటల్లో వివరించండి
చెప్పుడు మాటలు చేటుకు కారణం తెలుగులో వ్యాసం
వ్యవస్థ అంటే ఏమిటి వ్యవస్థల ప్రభావం తెలుగు వ్యాసం
నీటి పొదుపు ఆవశ్యకతను తెలియజేస్తూ వ్యాసం రాయండి
నగర జీవితం పట్ల ప్రజలు ఆకర్శితులు కావడానికి కారణాలు
పదవులు సంపదలు శరీరాలు శాశ్వతం కాదు తెలుగువ్యాసం
వాక్కు మనిషికి నిజమైన అలంకారమని ఎలా చెప్పగలవు
ఆత్మ విశ్వాసం గురించి వ్రాయండి
అవినీతి నిర్మూలనతో సమాజం ప్రగతిపధం తెలుగులో వ్యాసం
దీర్ఘ వైర వృత్తి మంచిది కాదు అర్థం
దీర్ఘకాల విరోధము మంచిది కాదు తెలుగు వ్యాసం
పోరు నష్టం పొందు లాభం తెలుగులో వ్యాసం
శతక పద్యాలలోని నీతులు నిత్యజీవితంలో ఎట్లా
రామాయణం ఎందుకు చదవాలి వ్యాసంలో వివరించండి.
గుణపాఠం గురించి తెలుగులో వ్యాసం వ్రాయండి
రేడియో గురించి తెలుగులో వ్యాసం రాయండి
పావురం గురించి తెలుగులో వ్యాసం
తెలుగు పదాలు పర్యాయ పదాలు అర్ధాలు
చెట్లు వలన ఉపయోగాలు వివరించండి
విద్యార్థులు క్రమశిక్షణ తెలుగులో వ్యాసం వ్రాయండి
ఆవిర్భవించింది అనే పదానికి అర్ధం ఏమిటి?
గొప్ప వ్యక్తిగా ఎదగాలి అంటే ఏం చేయాలి?
దూరదర్శిని టివి గురించి తెలుగులో వ్యాసం
కొన్ని తెలుగు పదాలు వాటి అర్ధాలు
నగర జీవనం అనుకూల అంశాలు ఆర్ధిక ప్రయోజనలు
మీకు తెలిసిన మంచి గుణాలు కలిగిన ఒకరిని గురించి అభినందన వ్యాసం
పండుగలు ప్రాముఖ్యత గురించి వ్యాసం అవి ఎలాంటి ప్రభావం చూపుతాయి
ప్రముఖ ప్రసిద్ధ దేవాలయాలు విశిష్టమైనవి, దేవాలయాల గురించి తెలుగులో