- अलग अपनी सूची आइटम और xml में अपनी पूरी सूची
- अपनी सूची आइटम के लिए एक कस्टम एडाप्टर बनाएँ और अपने सूची
- का दृष्टांत मापदंड आप प्रत्येक नए आइटम के लिए विभक्त रंग बदलने चाहते हैं पर निर्भर करता है यदि आप सूची में एडाप्टर से जोड़ने
उदाहरण:
listitem.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/sometext"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<View
android:id="@+id/customdivider"
android:layout_width="fill_parent"
android:layout_height="1dp"
/>
</LinearLayout>
list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView
android:id="@+id/totallynewlist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
CustomAdapter.java
public class CustomAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public SubjectListAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.listitem, null);
//Find the divider here and depending on your criteria change the colour - if required take data from main activity if you need it to change the colour
View divider= (View) vi.findViewById(R.id.customdivider);
if(your criteria)
divider.setBackgroundColor(R.color.white); //assuming white is defined in colors
else
set to whatever color
return vi;
}
}
आपकी गतिविधि में
ListView list = (ListView) findViewById(R.id.totallynewlist);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
<//Pass whatever condition you want for your criteria here if you need to - optional>
ListPass.add(map);
adapter = new CustomAdapter(this, ListPass);
list.setAdapter(adapter);
आप वैकल्पिक रंग की कोशिश कर रहे हैं, या परिभाषित पर अलग-अलग रंगों विभाजक विभिन्न अंक? – nickhar
मैं सामग्री के आधार पर विभिन्न तत्वों के लिए विभिन्न विभक्त रंग परिभाषित करने की कोशिश कर रहा हूं। जब मैं सूची बना रहा हूं, तो मैं इसे प्रोग्रामिक रूप से करने की कोशिश कर रहा हूं, लेकिन जब मैं अलग-अलग रंग को परिभाषित करता हूं तो यह सभी डिवाइडर को इस रंग में बदल देता है न केवल विशिष्ट तत्व के विभाजक को बदलना चाहता था। – MrBug