Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

Android RecyclerView पर चयनित आइटम को ठीक से कैसे हाइलाइट करें?

<घंटा/>

यह उदाहरण दर्शाता है कि मैं Android RecyclerView पर चयनित आइटम को ठीक से कैसे हाइलाइट करूं।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

निम्नलिखित निर्भरता को build.gradle में जोड़ें (मॉड्यूल:ऐप)

कार्यान्वयन 'com.android.support:recyclerview-v7:28.0.0'

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

 

चरण 3 - एक लेआउट संसाधन फ़ाइल बनाएं (list_layout.xml) और निम्न कोड जोड़ें -

  <टेक्स्ट व्यू एंड्रॉइड:आईडी =" @+id/awardYear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/awardTitle" android:layout_alignStart="@+id/awardTitle" android:layout_marginTop="20dp" android :text="नया टेक्स्ट" android:textColor="#000" /> 

चरण 4 - जैसा कि नीचे बताया गया है, खींचने योग्य संसाधन फ़ाइलें बनाएं और संबंधित कोड जोड़ें -

background_selector.xml −

 <आइटम android:drawable="@color/colorAccent" android:state_pressed="false" android:state_selected="true" />  

line_divider.xml −

<आकार xmlns:android="https://schemas.android.com/apk/res/android" android:shape="rectangle"> <आकार android:width="2dp" android:height="2dp" /> <सॉलिड एंड्रॉइड:color="@color/colorPrimaryDark" />

चरण 5 - नीचे बताए अनुसार जावा क्लास फाइल बनाएं और संबंधित कोड जोड़ें -

आइटमऑब्जेक्ट -

<पूर्व>वर्ग ItemObject { निजी स्ट्रिंग पुरस्कार शीर्षक; निजी स्ट्रिंग पुरस्कारवर्ष; निजी स्ट्रिंग प्लेयर; ItemObject (स्ट्रिंग पुरस्कार शीर्षक, स्ट्रिंग पुरस्कार वर्ष, स्ट्रिंग खिलाड़ी) {this.awardTitle =पुरस्कार शीर्षक; यह पुरस्कार वर्ष =पुरस्कार वर्ष; यह खिलाड़ी =खिलाड़ी; } स्ट्रिंग getAwardTitle() {वापसी पुरस्कार शीर्षक; } स्ट्रिंग getAwardYear () {वापसी पुरस्कार वर्ष; } स्ट्रिंग गेटप्लेयर () {रिटर्न प्लेयर; }}

RecyclerViewAdapter −

<पूर्व>आयात android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.List;import androidx.annotation.NonNull;import androidx.recyclerview. विजेट.RecyclerView;पब्लिक क्लास RecyclerViewAdapter विस्तृत करता हैRecyclerView.Adapter {निजी सूची itemList; RecyclerViewAdapter (संदर्भ संदर्भ, सूची <आइटमऑब्जेक्ट> आइटमलिस्ट) {this.itemList =itemList; } @NonNull @Override public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) { देखें LayoutView =LayoutInflater.from(parent.getContext()).inflate(R.layout.list_layout, null); नया RecyclerViewHolders (लेआउट व्यू) लौटाएँ; } @Override public void onBindViewHolder(RecyclerViewHolders Holder, int position) {holder.awardTitle.setText("पुरस्कार शीर्षक:" + itemList.get(position).getAwardTitle()); Holder.awardYear.setText("पुरस्कार वर्ष:" + itemList.get(position).getAwardYear ()); धारक.प्लेयर.सेटटेक्स्ट ("खिलाड़ी का नाम:" + itemList.get (स्थिति)। getPlayer ()); } @ ओवरराइड पब्लिक इंट getItemCount () { इसे लौटाएं। आइटम लिस्ट.साइज (); }}

रीसाइक्लर व्यूहोल्डर्स -

import android.util.SparseBooleanArray;import android.view.View;import android.widget.TextView;import androidx.recyclerview.widget.RecyclerView;class RecyclerViewHolders RecyclerView का विस्तार करता है। टेक्स्ट व्यू अवार्डवर्ष; टेक्स्ट व्यू प्लेयर; निजी SparseBooleanArray चयनित आइटम =नया SparseBooleanArray (); RecyclerViewHolders (आइटम व्यू देखें) {सुपर (आइटम व्यू); itemView.setOnClickListener (यह); पुरस्कार शीर्षक =itemView.findViewById (R.id.awardTitle); पुरस्कार वर्ष =itemView.findViewById (R.id.awardYear); प्लेयर =itemView.findViewById (R.id.playerName); } @Override सार्वजनिक शून्य पर क्लिक करें (दृश्य देखें) { अगर (चयनित इटम्स। प्राप्त करें (getAdapterPosition (), झूठा)) {चयनित आइटम। हटाएं (getAdapterPosition ()); देखें.सेट चयनित (झूठा); } और { चयनित इटम्स.पुट (getAdapterPosition (), सच); view.set चयनित (सच); } }}

SimpleItemDecoration -

<पूर्व>आयात android.content.Context;import android.graphics.Canvas;import android.ग्राफिक्स.ड्राएबल androidx.recyclerview.widget.RecyclerView;class SimpleItemDecoration RecyclerView.ItemDecoration को बढ़ाता है {निजी ड्रॉएबल ड्रॉएबल; SimpleItemDecoration (संदर्भ संदर्भ) {drawable =ContextCompat.getDrawable (संदर्भ, R.drawable.line_divider); } @Override सार्वजनिक शून्य पर ड्रॉओवर(@NonNull कैनवास कैनवास, RecyclerView पैरेंट, @NonNull RecyclerView.State State) { int left =parent.getPaddingLeft(); int दाएँ =parent.getWidth () - parent.getPaddingRight (); इंट चाइल्डकाउंट =पेरेंट.गेट चाइल्डकाउंट (); के लिए (int i =0; i

चरण 6 - निम्न कोड को src/MainActivity.java

में जोड़ें आयात करें;पब्लिक क्लास मेनऐक्टिविटी AppCompatActivity का विस्तार करती है {@Override संरक्षित शून्य onCreate (बंडल सेव्ड इंस्टेंसस्टेट) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView recyclerView =findViewById(R.id.recyclerView); recyclerView.addItemDecoration (नया SimpleItemDecoration (यह)); LinearLayoutManager लेआउटमैनेजर =नया LinearLayoutManager(MainActivity.this); recyclerView.setLayoutManager(layoutManager); सूची <आइटमऑब्जेक्ट> पोस्ट =रिटर्नलिस्ट इटम्स (); RecyclerViewAdapter अडैप्टर =नया RecyclerViewAdapter (MainActivity.this, पोस्ट); recyclerView.setAdapter (एडाप्टर); } निजी सूची <आइटमऑब्जेक्ट> रिटर्नलिस्ट इटम्स () {सूची <आइटमऑब्जेक्ट> आइटम =नया ऐरेलिस्ट <> (); आइटम जोड़ें (नया आइटमऑब्जेक्ट ("बैलोन'डॉर", "2007", "रिकार्डो काका")); आइटम। जोड़ें (नया आइटमऑब्जेक्ट ("बैलोन'डॉर", "2008", "क्रिस्टियानो रोनाल्डो")); आइटम। जोड़ें (नया आइटमऑब्जेक्ट ("बैलोन'डॉर", "2009 - 2012, 2015", "लियोनेल मेस्सी")); आइटम। जोड़ें (नया आइटमऑब्जेक्ट ("बैलोन'डॉर", "2013, 2014, 2016, 2017", "क्रिस्टियानो रोनाल्डो")); आइटम। जोड़ें (नया आइटमऑब्जेक्ट ("बैलोन'डॉर", "2018", "लुका मोड्रिक")); items.add (नया ItemObject ("बैलोन'd'or", "2019", "अभी तक तय नहीं किया गया है")); सामान वापस करे; }}

चरण 7 - निम्नलिखित कोड को androidManifest.xml में जोड़ें

 <एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />   

आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -

Android RecyclerView पर चयनित आइटम को ठीक से कैसे हाइलाइट करें?


  1. Android में NestedScrollView के अंदर RecyclerView का उपयोग कैसे करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में NestedScrollView के अंदर RecyclerView का उपयोग कैसे करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। निम्नलिखित निर्भरता को build.gradle में जोड़ें (मॉड्यूल:ऐप)

  1. एंड्रॉइड पर स्थिति के बजाय स्पिनर के चयनित आइटम को मूल्य से कैसे सेट करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड पर स्थिति के बजाय स्पिनर के चयनित आइटम को मूल्य के आधार पर कैसे सेट करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.x

  1. एंड्रॉइड में टेक्स्ट व्यू में टेक्स्ट को जस्टिफाई कैसे करें?

    यह उदाहरण दर्शाता है कि एंड्रॉइड पर टेक्स्ट व्यू में टेक्स्ट को कैसे जस्टिफाई किया जाए। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3