package semtex.archery; import java.util.List; import semtex.archery.data.DatabaseHelper; import semtex.archery.data.entities.User; import android.content.Context; import android.content.Intent; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable.Orientation; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.*; import com.j256.ormlite.android.apptools.OrmLiteBaseActivity; import com.j256.ormlite.dao.RuntimeExceptionDao; public class UserManager extends OrmLiteBaseActivity<DatabaseHelper> { public static final int REQUEST_CODE = 0; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.usermanager); final ImageButton addUser = (ImageButton)findViewById(R.id.btnAdd); addUser.setOnClickListener(new View.OnClickListener() { public void onClick(final View v) { final Intent intent = new Intent(v.getContext(), AddEditUser.class); startActivityForResult(intent, REQUEST_CODE); } }); fillUsers(); final ListView listView = (ListView)findViewById(R.id.lvUsers); listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { public boolean onItemLongClick(final AdapterView<?> av, final View v, final int i, final long l) { final User user = (User)listView.getAdapter().getItem(i); final Intent intent = new Intent(v.getContext(), AddEditUser.class); intent.putExtra("userid", user.getId()); startActivityForResult(intent, REQUEST_CODE); return true; } }); } @Override protected void onResume() { super.onResume(); fillUsers(); } private void fillUsers() { final RuntimeExceptionDao<User, Long> userDao = getHelper().getUserDao(); final List<User> users = userDao.queryForAll(); final ListView listView = (ListView)findViewById(R.id.lvUsers); final ArrayAdapter<User> adapter = new UserAdapter(this, R.layout.user_row, users); listView.setAdapter(adapter); } public class UserAdapter extends ArrayAdapter<User> { public UserAdapter(final Context context, final int textViewResourceId, final List<User> objects) { super(context, textViewResourceId, objects); } @Override public View getView(final int position, final View convertView, final ViewGroup parent) { View v = convertView; final User currentUser = getItem(position); if (v == null) { final LayoutInflater li = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); v = li.inflate(R.layout.user_row, null); } final TextView userName = (TextView)v.findViewById(R.id.txtUsername); userName.setText(currentUser.getUserName()); final TextView mail = (TextView)v.findViewById(R.id.txtMail); mail.setText(currentUser.getMail()); final GradientDrawable gd = new GradientDrawable(Orientation.RIGHT_LEFT, new int[] { currentUser.getRgbColor() & 0x00FFFFFF | 0xAA000000, 0x0 }); v.setBackgroundDrawable(gd); return v; } } }