1
我如何實現onclicklistener,所以如果一個項目被點擊,我得到的對象。我想是這個 -onclicklistener on seperatedlistadapter
//@Override
//public void onListItemClick(ListView l, View v, int position, long id) {
//Contact c = getItem(position);
//Intent i = new Intent(getActivity(),ContactPagerActivity.class);
//i.putExtra(ShowContactFragment.EXTRA_CONTACT_ID, c.getmId());
//startActivity(i);
//}
聯繫是對具有類似名稱,ID屬性的obejct類,解決
這裏是我的代碼 -
public class ContactListFragment extends ListFragment {
private ArrayList<Contact> mContacts;
private static final String TAG = "CrimeListFragment";
SeparatedListAdapter adapter2;
ListView list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
getActivity().setTitle(R.string.contact_title);
mContacts = ContactLab.get(getActivity()).getContacts();
adapter2 = new SeparatedListAdapter(getActivity());
organizeList();
}
@Override
public void onResume(){
super.onResume();
mContacts = ContactLab.get(getActivity()).getContacts();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.contact_contact_list, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menu_item_new_contact:
Contact contact = new Contact();
ContactLab.get(getActivity()).addContact(contact);
Intent i = new Intent(getActivity(), ContactActivity.class);
i.putExtra(ContactFragment.EXTRA_CONTACT_ID_CF, contact.getmId());
startActivityForResult(i, 0);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void organizeList(){
ArrayList<ArrayList> arrayLists = new ArrayList<ArrayList>();
char firstChar;
int firstIndex=0;
int secondIndex=1;
for(int i=firstIndex; i<mContacts.size();){
ArrayList<String> names = new ArrayList<String>();
names.add(mContacts.get(i).getmName());
if(i == mContacts.size()-1){
arrayLists.add(names);
firstIndex++;
}
firstChar = mContacts.get(i).getmName().charAt(0);
innerloup:
for(int ii=secondIndex; ii<mContacts.size();){
if(firstChar == mContacts.get(ii).getmName().charAt(0)){
names.add(mContacts.get(ii).getmName());
secondIndex++;
if(secondIndex == mContacts.size())
{
firstIndex = secondIndex;
arrayLists.add(names);
}
}
else{
arrayLists.add(names);
firstIndex = secondIndex;
secondIndex++;
ii=secondIndex;
break innerloup;
}
ii=secondIndex;
}
i = firstIndex;
}
for(int i =0; i<arrayLists.size(); i++)
{
ArrayList<String> array = arrayLists.get(i);
String name = array.get(0);
char charFirst = name.charAt(0);
adapter2.addSection(Character.toString(charFirst), new ArrayAdapter<String>(getActivity(),
R.layout.list_item, arrayLists.get(i)));
}
setListAdapter(adapter2);
}
}
使用'String item = l.getItemAtPosition(position)' – Blackbelt
@Blackbelt我得到一個錯誤類型不匹配:無法將對象轉換爲聯繫人 – aleksanderQuestion
您的適配器是什麼類型? – Blackbelt