sexta-feira, 3 de fevereiro de 2012
Exemplo de um SlidingDrawer que sobreponha os outros elementos da Activity
Quando se cria um SlidingDrawer dentro de um layout que não seja um RelativeLayout, ele não irá sobrepor os outros elementos da tela.
O segredo é colocá-lo dentro de um RelativeLayout, e ser o último elemento! Cada elemento que for adicionado a tela depois do SlidingDrawer ficará sobre ele ao arrasta-lo.
Criando uma GridActivity com número de elementos variando com a orientação
Primeiramente, tenha em mãos sua classe de modelo.
Exemplo:
class Time { String nome; int bandeira; public Time(String nome, int band){ this.nome=nome; this.bandeira=band; } @Override public String toString() { return nome; } }Em seguida, implemente uma classe filha de ArrayAdapter (ou outra classe filha de ListAdapter):
class ListItemAdapter extends ArrayAdapter< Time> { public ListItemAdapter(Context context, int textViewResourceId, List< Time> objects) { super(context, textViewResourceId, objects); } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) GridActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.list_item, null); ImageView img = ((ImageView) v.findViewById(R.id.imagemmm)); img.setImageDrawable( getResources().getDrawable(getItem(position).bandeira) ); TextView txt = ((TextView) v.findViewById(R.id.ronaldo)); txt.setText(getItem(position).nome); return v; } }Agora é só implementar o método onCreate passando a lista de times como parâmetro:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridteste); GridView grid = (GridView) findViewById(R.id.grid); //Cria uma Lista de objetos Time final ListScreenshots:
quinta-feira, 2 de fevereiro de 2012
Criando uma AutoCompleteTextView customizada
Primeiramente crie uma classe model, por exemplo, País:
Depois é necessário criar uma classe que extenda ArrayAdapter e sobrescrever seu método getView:
Por último, o método OnCreate da sua activity:
class Pais { String nome; int bandeira; public Pais(String nome, int band){ this.nome=nome; this.bandeira=band; } @Override public String toString() { return nome; } }
Depois é necessário criar uma classe que extenda ArrayAdapter e sobrescrever seu método getView:
class PaisAdapter extends ArrayAdapter< Pais> { public PaisAdapter(Context context, int resource, List< Pais> objects) { super(context, resource, objects); } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) TesteServiceActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.list_item, null); ImageView img = ((ImageView) v.findViewById(R.id.imagemmm)); img.setImageDrawable( getResources().getDrawable(getItem(position).bandeira) ); TextView txt = ((TextView) v.findViewById(R.id.ronaldo)); txt.setText(getItem(position).nome); return v; } }
Por último, o método OnCreate da sua activity:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Pega o AutoCompleteTextView AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); //Cria uma Lista de objetos Pais List< Pais> paises = new ArrayList< TesteServiceActivity.Pais>(); paises.add(new Pais("Argentina", R.drawable.argentina)); paises.add(new Pais("Paraguai", R.drawable.paraguai)); paises.add(new Pais("Argélia", R.drawable.uruguai)); //Instancia o PaisAdapter PaisAdapter adapter = new PaisAdapter(this, R.layout.list_item, paises); textView.setAdapter(adapter); }Screenshots:
Assinar:
Postagens (Atom)