gpt4 book ai didi

android - ListView 根本不更新

转载 作者:行者123 更新时间:2023-11-29 17:54:26 25 4
gpt4 key购买 nike

您好,我正在使用包含三个 fragment 的 View 寻呼机指示器,其中一个 fragment 有一个 ListView ,显示我的 SQLite 数据库的内容,但是当向我的表添加数据时, ListView 不显示他的新数据我在这里添加了我的代码:

public class caleryhistory extends SherlockListFragment {
List<calery_lagari> Calery_lagari;
calery_lagari_SQLiteData data;
ArrayAdapter<calery_lagari> adapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.calery_history, null);


data = new calery_lagari_SQLiteData(getActivity());
data.open();
Calery_lagari = data.findall();
adapter = new ArrayAdapter<calery_lagari>(getActivity(),
R.layout.listback_layout, Calery_lagari);
adapter.notifyDataSetChanged();

setListAdapter(adapter);

adapter.notifyDataSetChanged();

return v;

}

有什么帮助吗?提前致谢! :)

更新

import java.util.List;

import mr.chag.va.lagar.R;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.actionbarsherlock.app.SherlockListFragment;


public class caleryhistory extends SherlockListFragment {
List<calery_lagari> Calery_lagari;
calery_lagari_SQLiteData data;
ArrayAdapter<calery_lagari> adapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.calery_history, null);




return v;

}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
data = new calery_lagari_SQLiteData(getActivity());
data.open();
Calery_lagari = data.findall();
adapter = new ArrayAdapter<calery_lagari>(getActivity(),
R.layout.listback_layout, Calery_lagari);
adapter.notifyDataSetChanged();
ListView listView = (ListView)view.findViewById(android.R.id.list);
listView.setAdapter(adapter);


adapter.notifyDataSetChanged();
super.onViewCreated(view, savedInstanceState);
}

}

我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="clear"
android:text="clear all" />

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>

</LinearLayout>

最佳答案

扩展 SherlockListFragments 的最佳方法是让 onCreateView 返回膨胀 View ,然后覆盖 onViewCreated。并将改变 View 的代码放在那里。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle b){
return inflater.inflate(R.layout.calery_history, null);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
data = new calery_lagari_SQLiteData(getActivity());
data.open();
Calery_lagari = data.findall();
adapter = new ArrayAdapter<calery_lagari>(getActivity(), view.R.layout.listback_layout, Calery_lagari);
adapter.notifyDataSetChanged();

setListAdapter(adapter);

adapter.notifyDataSetChanged();

}

关于android - ListView 根本不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20474399/

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