क्या एंड्रॉइड के addHeaderView() का उपयोग एक ही सूची दृश्य में एकाधिक शीर्षलेख जोड़ने के लिए किया जा सकता है? क्या कोई ऐसा उदाहरण दे सकता है कि यह कैसे करें?addHeaderView() के साथ एक एकल सूची दृश्य में एकाधिक शीर्षलेख जोड़ने के लिए कैसे?
मैं आईकोनिक एडाप्टर क्लास में हेरफेर करके जो चाहता था उसे पूरा करने में सक्षम था ... क्या कोई कारण है कि मुझे ऐसा क्यों नहीं करना चाहिए? मुझे लगता है कि इसे और अधिक उन्नत कार्यान्वयन के लिए संशोधित किया जा सकता है। मेरे मामले में, मुझे पता है कि मेरे पास प्रत्येक अनुभाग में हेडर + 2 पंक्तियों के साथ दो अनुभाग होंगे।
class IconicAdapter extends ArrayAdapter<String> {
IconicAdapter() {
super(ContactTabProfileResource.this, R.layout.row_iconic, mArrayList);
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = null;
if(position == 1 || position == 5) { // phone
row = inflater.inflate(R.layout.row_iconic, parent, false);
TextView label =(TextView)row.findViewById(R.id.label);
label.setText(mArrayList.get(position));
ImageView icon = (ImageView)row.findViewById(R.id.rowicon);
icon.setImageResource(R.drawable.icon_phone);
} else if (position == 2 || position == 6) { // email
row = inflater.inflate(R.layout.row_iconic, parent, false);
TextView label =(TextView)row.findViewById(R.id.label);
label.setText(mArrayList.get(position));
ImageView icon = (ImageView)row.findViewById(R.id.rowicon);
icon.setImageResource(R.drawable.icon_email);
} else if (position == 0 || position == 4) { // section header
row = inflater.inflate(R.layout.row_header, parent, false);
TextView label =(TextView)row.findViewById(R.id.label);
label.setText(mArrayList.get(position));
label.setBackgroundColor(Color.GRAY);
} else if (position == 3) { // section divider
row = inflater.inflate(R.layout.row_header, parent, false);
TextView label =(TextView)row.findViewById(R.id.label);
label.setText(" ");
}
return(row);
}
}
फिर मैंने दो अलग-अलग एक्सएमएल लेआउट बनाए। row_header.xml हेडर पंक्तियों के लिए है और row_iconic.xml गैर-शीर्ष पंक्तियों के लिए है, जिसमें एक आइकन होता है।
row_header.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"
android:gravity="right"
>
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingRight="10dp"
android:paddingLeft="10px"
android:gravity="left"
android:textStyle="bold"
/>
</LinearLayout>
row_iconic.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"
android:gravity="right"
>
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingRight="10dp"
android:paddingLeft="44px"
/>
<ImageView
android:id="@+id/rowicon"
android:layout_width="40dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:layout_height="30dp"
android:src="@drawable/icon"
/>
</LinearLayout>
मैं एकाधिक शीर्षलेख दृश्य जोड़ने में सक्षम हूं ... लेकिन वे सभी ListView के शीर्ष पर दिखाई दे रहे हैं। मैं ListView के भीतर अनुभाग बनाने के लिए हेडर का उपयोग करना चाहता हूं। यह सुनिश्चित नहीं है कि हेडर्स ListView के शीर्ष के अलावा कहीं भी कैसे दिखें – Chris