B
runo,
colando o código direto no corpo do email é MUITO ruim de ler. não respeita as indentações e ler o código com tudo preto fica um pouco confuso. utiliza algum serviço de copy paste tipo paste.bin pra enviar.
não consegui identificar um erro na lógica mas pode ter sido por eu ter ficado confuso ao ler este código todo preto. sorry.
Novo Hamburgo - RS - Brasil
------------------
------------------
Linux user: #525086
On Wed, Apr 3, 2013 at 4:41 PM, BP-Korp <paignez@gmail.com> wrote:
Meu problema é o seguinte.
Quando eu executo o sistema ele preenche a lista com o metodo createListView().
Ao compilar ele consegue entender todos os numeros dos campos.
Mas quando eu digito e adiciono um novo registro através do EditText e do Button, quando eu clico em cima ele nao consegue ler o valor da posição do registro dentro do array.
Esse problema faz com que quando eu clico no botao delete, ele deleta o numero "errado" o mesmo numero errado que ele identificaria na posicao do item dentro do array.
1- eu precisaria que quando eu adicionasse um registro ele fosse capaz de saber a posição correta do item.
2 - eu precisaria tambem que ele deletasse o item correto ao clicar no botao delete.
alguem pode me ajudar de alguma forma?
Atenciosamente.
BRUNO.
=================================================
Classe MAIN.
=================================================
package com.listteste;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class ListaPers extends Activity implements OnItemClickListener
{
private ListView listView;
private AdapterListView AdapterListView;
private ArrayList<ItemListView> itens;
int i;
EditText editText;
Button button1;
private void setMessage(String message) {
Log.e(" ListaPersonalisada ", message);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // identifica a ACTIVITY desse codigo
editText = (EditText)findViewById(R.id.editText1); // identifica o edittext no codigo
button1 = (Button)findViewById(R.id.button1); // identifica o botao no codigo
listView = (ListView)findViewById(R.id.listView1); // identifica o ListView
listView.setOnItemClickListener(this); // recebe o clique do listview
////////////// LISTVIEW COMPONENTES //////////////////////////////
itens = new ArrayList<ItemListView>(); //cria o ArrayList
createListView(); // metodo que cria a lista
//criar o adapter
AdapterListView = new AdapterListView(this, itens);
//Define o Adapter
listView.setAdapter(AdapterListView);
//cor quando é selecionado
listView.setCacheColorHint(Color.TRANSPARENT);
button1.setOnClickListener(new View.OnClickListener() { // recebe o clique do botao.
@Override
public void onClick(View v) {
AddItem(editText.getText().toString(), R.drawable.atualiza);
}
});
setMessage(" ON CREATE OK!");
}
public void AddItem(String texto, int idImagem){
ItemListView item = new ItemListView(texto, idImagem);
itens.add(item);
AdapterListView.notifyDataSetChanged();
editText.setText("");
setMessage(" AddItem OK!");
}
private void createListView()
{
// Criando a lista e preenchendo
ItemListView item1 = new ItemListView("Benhur",R.drawable.atualiza);
ItemListView item2 = new ItemListView("Alcione",R.drawable.atualiza);
ItemListView item3 = new ItemListView("Chris",R.drawable.atualiza);
ItemListView item4 = new ItemListView("Benhur",R.drawable.atualiza);
itens.add(item1);
itens.add(item2);
itens.add(item3);
itens.add(item4);
setMessage(" createListView OK!");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//Pega o item que foi selecionado
ItemListView item = (ItemListView) AdapterListView.getItem(arg2);
//Demonstraçao
Toast.makeText(this, "clicou " + item.getTexto(),Toast.LENGTH_LONG).show();
setMessage(" onItemClick(AdapterView<?> ");
}
}
===================================================
Classe AdapterListView
===================================================
package com.listteste;
import java.util.ArrayList;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class AdapterListView extends BaseAdapter implements Filterable {
private LayoutInflater mInflater;
private ArrayList<ItemListView> itens;
private Context context;
int delpos;
private void setMessage(String message) {
Log.e(" AdapterListView ", message);
}
public AdapterListView(Context context, ArrayList<ItemListView> itens) {
// Itens que preencheram o listview
this.itens = itens;
// responsavel por pegar o Layout do item
mInflater = LayoutInflater.from(context);
this.context = context;
setMessage("AdapterListView OK!");
}
@Override
public int getCount() {
setMessage("GetCount");
return itens.size();
}
@Override
public ItemListView getItem(int position) {
setMessage("get Position ITem clicado???");
return itens.get(position);
}
@Override
public long getItemId(int position) {
setMessage("GET ITEM ID " + position);
delpos = position;
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
// Pega o item de acordo com a posicao
final ItemListView item = itens.get(position);
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_listview, null);
// Creates a ViewHolder and store references to the two children views we want to bind data to.
holder = new ViewHolder();
holder.textLine = (TextView) convertView.findViewById(R.id.text);
holder.iconLine = (ImageView) convertView.findViewById(R.id.imagemview);
holder.buttonLine = (Button) convertView.findViewById(R.id.buttonLine);
convertView.setOnClickListener(new OnClickListener() {
final int pos = position;
public void onClick(View v) {
Toast.makeText(context, "Click -" + pos + item.getTexto(),
Toast.LENGTH_SHORT).show();
}
});
holder.buttonLine.setOnClickListener(new OnClickListener() {
final int pos = position;
@Override
public void onClick(View v) {
Toast.makeText(context, "Delete - " + String.valueOf(pos) + " ",Toast.LENGTH_SHORT).show();
itens.remove(pos);
notifyDataSetChanged();
setMessage("Remove OK! "+ pos);
}
});
convertView.setTag(holder);
} else {
// Get the ViewHolder back to get fast access to the TextView
// and the ImageView.
holder = (ViewHolder) convertView.getTag();
}
// Bind the data efficiently with the holder.
holder.iconLine.setImageResource(item.getIconeRid());
holder.textLine.setText(item.getTexto());
return convertView;
}
@Override
public void notifyDataSetChanged() {
getItemId(delpos);
super.notifyDataSetChanged();
}
static class ViewHolder {
TextView textLine;
ImageView iconLine;
Button buttonLine;
}
@Override
public Filter getFilter() {
// TODO Auto-generated method stub
return null;
}
}
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.






0 comentários:
Postar um comentário