【发布时间】:2014-12-16 01:28:04
【问题描述】:
我很想使用此模块或其他模块来使列表视图上的部分标题保持在顶部。
http://applidium.github.io/HeaderListView/
现在在它的自述文件中说
1. Import the project in Eclipse then add it to the build path of your project.
2. Replace your ListView with HeaderListView
3. Implement a subclass of SectionAdapter
4. Set it to your HeaderListView with setAdapter(SectionAdapter adapter)
现在我要将整个项目文件导入 Android Studio 以使其正常工作吗?我需要在我的 gradle 文件中添加任何内容吗?
我会做 File > Import Project 还是 Import Module?
或者如何从github添加和使用这个项目
https://github.com/vinc3m1/android-segmentedradiobutton
感谢您的帮助:)
编辑
我现在需要帮助设置 HeaderView 与我的列表视图和数据,他是我目前的 ListView 与不粘的标题。我希望它设置好让它们粘住。
这是我的数据,其中键是节标题,值是单元格。
linkedHashMap = {Pizza=[Cheese Pizza - Slice, Pepperoni Pizza, Tomato Bruschetta Flatbread Pizza, Herb
Seasoned Breadsticks, Spaghetti Sauce with Tomato Bits],
Salad=[Salad Bar Station, Green Pepper & Tomato Salad, Lo Mein Noodle Salad],
Cold Cereal=[Miscellaneous/Peripherals]
Dessert=[Carnival Cookies, Sweet Cinnamon Brownies, Oreo Crumble Pudding Cup,
Cherry Jell-O Parfait]}
这是我的设置。
MyCustomAdapter mAdapter = new MyCustomAdapter();
for (int i = 0; i < linkedHashMap.size(); i++) {
Object[] headerArray = linkedHashMap.keySet().toArray();
String headerString = headerArray[i].toString();
mAdapter.addSeparatorItem(headerString);
for (int i2 = 0; i2 < linkedHashMap.get(headerString).size(); i2++) {
mAdapter.addItem(linkedHashMap.get(headerString).get(i2));
}
}
这是我的适配器
public class MyCustomAdapter extends BaseAdapter{
ArrayList mData = new ArrayList();
LayoutInflater mLayoutInflater;
private static final int TYPE_ITEM = 0;
private static final int TYPE_SEPARATOR = 1;
private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 1;
private TreeSet mSeparatorsSet = new TreeSet();
public MyCustomAdapter() {
mLayoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void addItem(final String item) {
mData.add(item);
notifyDataSetChanged();
}
public void addSeparatorItem(final String item) {
mData.add(item);
// save separator position
mSeparatorsSet.add(mData.size() - 1);
notifyDataSetChanged();
}
@Override
public int getItemViewType(int position) {
return mSeparatorsSet.contains(position) ? TYPE_SEPARATOR : TYPE_ITEM;
}
@Override
public int getViewTypeCount() {
return TYPE_MAX_COUNT;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public String getItem(int position) {
return mData.get(position).toString();
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int type = getItemViewType(position);
System.out.println("getView " + position + " " + convertView + " type = " + type);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_ITEM:
convertView = mLayoutInflater.inflate(R.layout.item_cell_view, parent, false);
holder.textView = (TextView)convertView.findViewById(R.id.text);
break;
case TYPE_SEPARATOR:
Context context = DiningItemsActivity.this;
convertView = mLayoutInflater.inflate(R.layout.header_cell_view, parent, false);
holder.textView = (TextView)convertView.findViewById(R.id.textSeparator);
convertView.setBackgroundColor(colorBar);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.textView.setText(mData.get(position).toString());
return convertView;
}
public class ViewHolder {
public TextView textView;
}
}
【问题讨论】:
-
也许,你可以先在Eclipse中创建一个项目,然后在Android Studio中导入。
标签: android listview module android-studio