私のリストビューはrelativeLayoutで作成されています。「texViewLibelleListe」をタッチすると、リストビューの項目がOnClickメソッド(「bleu_c」内)で強調表示され、新しいアクティビティ(「ActiviteSoldeAchat」)が開始されます。このアクティビティ( "ActiviteSoldeAchat")を破棄すると、最初のアクティビティが再開されます。
私の質問:アクティビティを再開するとき、または適切なアイテムを強調表示するときに、リストビューのすべてのアイテムの強調表示を無効にしたい。これどうやってするの?現時点では、これは強調表示されている良い項目ではありません。何か案が?
ご協力ありがとうございました
私が見つけた唯一の解決策は、次のようにOnResumeメソッドでリストビューを完全にリロードすることです。adapter= new ListeAdapter(this、listeRepository.GetAll()); ListListe.setAdapter(adapter);
しかし、私はそれはきれいな解決策ではないと思います
主な活動:
public class ActiviteSoldeListe extends Activity {
ListView ListListe;
Button boutonAjouterListe;
private ListeAdapter adapter;
private ListeRepository listeRepository=new ListeRepository(this);;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.soldeliste);
//On récupère tous les éléments de notre interface graphique grâce aux ID
ListListe = (ListView) findViewById(R.id.listListe);
// ouverture de la base
listeRepository.Open();
// récupération de tous les éléments de la table achat et adaptateur
adapter = new ListeAdapter(this, listeRepository.GetAll());
// fermeture de la base
listeRepository.Close();
ListListe.setAdapter(adapter);
}
//au lancement de l'activité
protected void onStart(){
super.onStart();
}
protected void onRestart(){
super.onRestart();
}
protected void onResume(){
super.onResume();
UpdateAdapter();
}
private void UpdateAdapter() {
listeRepository.Open();
adapter.setListes(listeRepository.GetAll());
listeRepository.Close();
adapter.notifyDataSetChanged();
}
リストビューのadpater:
public class ListeAdapter extends BaseAdapter implements OnClickListener{
private List<Liste> listeListe;
private LayoutInflater inflater;
private Context context;
public int confirmDelete;
public void setListes(List<Liste> listeListe) {
this.listeListe = listeListe;
}
public ListeAdapter(Context context, List<Liste> listeListe) {
this.listeListe = listeListe;
this.setContext(context);
this.inflater = LayoutInflater.from(context);
}
public int getCount() {
return listeListe.size();
}
public Object getItem(int position) {
return listeListe.get(position);
}
public long getItemId(int position) {
return listeListe.get(position).getId();
}
private class ViewHolder {
public TextView tvLibelleListe;
public TextView tvDate;
public Button btSupprimer;
}
public View getView(final int position, View view, ViewGroup viewGroup) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.layout_item_liste, null);
holder.tvLibelleListe = (TextView) view
.findViewById(R.id.textViewLibelleListe);
holder.tvDate = (TextView) view
.findViewById(R.id.textViewDate);
holder.btSupprimer = (Button) view
.findViewById(R.id.buttonSupprimerListe);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
final Integer IdListe = listeListe.get(position).getId();
final RelativeLayout listlayout = (RelativeLayout) view.findViewById(R.id.ListViewListe);
holder.tvLibelleListe.setText(listeListe.get(position).getLibelleListe() + " - " + listeListe.get(position).getouvert());
holder.tvDate.setText(listeListe.get(position).getdate() + "");
holder.btSupprimer.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ConfirmDelete(getContext(), IdListe);
}
});
holder.tvLibelleListe.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
listlayout.setBackgroundResource(R.color.bleu_f);
ActiviteSoldeListe soldeListeActivity = (ActiviteSoldeListe) getContext();
Intent intent = new Intent();
intent.setClass(soldeListeActivity, ActiviteSoldeAchat.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("IdListe",IdListe);
soldeListeActivity.startActivity(intent);
}
});
holder.tvDate.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
listlayout.setBackgroundResource(R.color.bleu_f);
ActiviteSoldeListe soldeListeActivity = (ActiviteSoldeListe) getContext();
Intent intent = new Intent();
intent.setClass(soldeListeActivity, ActiviteSoldeAchat.class);
intent.putExtra("IdListe",IdListe);
soldeListeActivity.startActivity(intent);
}
});
return view;
}
}