package com.osmnavigator; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; /** * Activity showing Friends as a list. * * @author M.Kergall */ public class FriendsActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.items_list); TextView title = (TextView) findViewById(R.id.title); ListView list = (ListView) findViewById(R.id.items); Intent myIntent = getIntent(); //STATIC - final ArrayList<Friend> friends = myIntent.getParcelableArrayListExtra("FRIENDS"); ArrayList<Friend> friends = FriendsManager.getFriends(); if (friends != null && friends.size() > 0) { title.setText(R.string.FriendsActivity_Title); } else { title.setText(R.string.FriendsActivity_EmptyList); } final int currentFriendId = myIntent.getIntExtra("ID", -1); FriendAdapter adapter = new FriendAdapter(this, friends); list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int position, long index) { Intent intent = new Intent(); intent.putExtra("ID", position); setResult(RESULT_OK, intent); finish(); } }); list.setAdapter(adapter); list.setSelection(currentFriendId); } } class FriendAdapter extends BaseAdapter implements OnClickListener { private Context mContext; private ArrayList<Friend> mFriends; public FriendAdapter(Context context, ArrayList<Friend> friends) { mContext = context; mFriends = friends; } @Override public int getCount() { if (mFriends == null) return 0; else return mFriends.size(); } @Override public Object getItem(int position) { if (mFriends == null) return null; else return mFriends.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup viewGroup) { Friend entry = (Friend) getItem(position); if (convertView == null) { LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.item_layout, null); } TextView tvTitle = (TextView) convertView.findViewById(R.id.title); tvTitle.setText(entry.mNickName); TextView tvDetails = (TextView) convertView.findViewById(R.id.details); tvDetails.setText(entry.mMessage); ImageView ivPhoto = (ImageView) convertView.findViewById(R.id.thumbnail); ivPhoto.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_menu_sharing/*entry.mThumbnail*/)); //entry.fetchThumbnailOnThread(ivPhoto); return convertView; } @Override public void onClick(View arg0) { //nothing to do. } }