gpt4 book ai didi

java - 无法获取方法 notifydatasetchanged

转载 作者:行者123 更新时间:2023-11-29 03:28:10 26 4
gpt4 key购买 nike

上下文:我有 2 个类,一个类 Listactivity 和另一个类 AudioListActivity,我在其中定义了一个自定义数组适配器。所以在带有 oncreate 的 ListActivity 中,我调用了一次我的自定义数组适配器setListAdapter ( MyListAdapter = new .... ) 用 10 个项目填充我的 ListView 。它运作良好。我的问题是在 listactivity 的 onclick 上: 1/我调用一个线程来重新加载一个包含 10 个其他项目的数组(效果很好) 2/我想用这个数组刷新我的 ListView (再次没有 setListAdapter 因为我不想在内存中创建另一个适配器对象)。所以我想通知datasetchanged()。但是当我尝试 MyListAdapter 时。 “完成”它不给notifydatasetchanged。那我该怎么办?我如何通知我的 arrayadapter 刷新 ListView ?需要一些帮助 !谢谢 !

这里是Listactivity

 ListView ClassListView;

ListAdapter MyListAdapter;


@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_audio);

ClassListView = getListView();
ClassListView.addFooterView(footer);


//chargement des données de la premiere page de la listview via LA thread
threadChargeListe(0, "PremierePage", "aucun");


setListAdapter(MyListAdapter=new AudioListAdapter(this, 0, MyApplication.getMyArrayDonneesListeAudio()));


//Mise en place des listeners
addListener();
}
private void addListener() {

//listener bouton page suivante
ImageButton MyPageSuivante = (ImageButton) findViewById(R.id.pagesuivante);
MyPageSuivante.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//chargement des données de la page suivante via LA thread
int I = MyApplication.getMyArrayDonneesListeAudio().size();
int idref = MyApplication.getMyArrayDonneesListeAudio().get(I - 1).getIdDemandeAudio(); /* calcul de la ref de l'audio pivot */
chargeListe(idref, "PageSuivante", "aucun");
MyListAdapter. >>>>> HERE i CAN T ACCESS notifydatasetchanged ???
}
});

这是我的数组适配器的第一行

public class AudioListAdapter extends ArrayAdapter<DonneesListeAudio> {


// Variables
private Activity activity;
private ArrayList<DonneesListeAudio> DataOfListView;
private static LayoutInflater Inflater = null;
int classPosition = 0;
ViewWrapper Holder;
private long classTimeHeureLecture = 0;
private AsyncTask<Integer, Void, Void> MyAsynchTask;
private AtomicBoolean isThreadRunnning = new AtomicBoolean();
private AtomicBoolean isThreadPausing = new AtomicBoolean();

String classAudioFileName;


//Constructeur
public AudioListAdapter(Activity activity, int textViewResourceId, ArrayList<DonneesListeAudio> _Liste) {
super(activity, textViewResourceId, _Liste);
try {
this.activity = activity;
this.DataOfListView = _Liste;

Inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

} catch (Exception e) {

}
}




//construction de la vue de l'item
public View getView(int position, View convertView, ViewGroup parent) {
classPosition = position;
View ItemView = convertView;

try {
if (convertView == null) { AND SO ON .....

最佳答案

ListAdapter 没有成员 notifyDataSetChanged()。您必须将 MyListAdapter 转换为 ArrayAdapter 才能访问它。

((ArrayAdapter<DonneesListeAudio>) MyListAdapter).notifyDataSetChanged();

检查错别字

关于java - 无法获取方法 notifydatasetchanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19888673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com