【发布时间】:2015-04-24 06:00:37
【问题描述】:
我已经在 CustomAdapter 类中成功实现了圆角 ListView,如下所示:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// convert view = design
View v = convertView;
if (v == null) {
viewHolder = new ViewHolder();
v = layoutInflater.inflate(layout, null);
viewHolder.textTitle = (TextView) v.findViewById(R.id.textTitle);
if (position == 0 && arrayList.size() == 1) {
v.setBackgroundResource(R.drawable.top_list_selector);
}
else if (position == 0) {
v.setBackgroundResource(R.drawable.top_list_selector);
}
else if (position == arrayList.size() - 1) {
v.setBackgroundResource(R.drawable.bottom_list_selector);
} else {
v.setBackgroundResource(R.drawable.mid_list_selector);
}
v.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) v.getTag();
}
但我不知道如何在下面的课程中实现相同的功能,我知道代替arrayList 我必须使用countryList 但是view 和position 呢?
public class CountryFragment extends Fragment {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_social, container, false);
displayListView();
return view;
}
private void displayListView() {
//Array list of countries
List<String> countryList = new ArrayList<String>();
countryList.add("Country 1");
countryList.add("Country 2");
countryList.add("Country 3");
countryList.add("Country 4");
countryList.add("Country 5");
//create an ArrayAdapter from the String Array
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.adapter_social, countryList);
ListView listView = (ListView) view.findViewById(R.id.listCountry);
// Assign adapter to ListView
listView.setAdapter(dataAdapter);
//enables filtering for the contents of the given ListView
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch( position )
{
case 0:
Toast.makeText(getActivity(), "Country 1", Toast.LENGTH_SHORT).show();
break;
.....
}
}
});
}
}
【问题讨论】:
-
您正在使用数组适配器,您必须使用自定义适配器类,否则您无法实现。
-
@UmeshChhabra 感谢我使用自定义适配器实现了它
标签: android android-listview android-custom-view