- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在我的 Fragment
中使用 ListView
和 GridView
但我在这一行中遇到错误:
adapter.notifyDataSetChanged();
我的错误是 NullpointException
,我正在使用库支持版本 4。
public class Gallery_fragment extends FragmentActivity {
private ViewGroup layout;
public static Database db;
private View view;
public static ArrayAdapter adapter;
public static ArrayList<StructureImage> images = new ArrayList<StructureImage>();
public static ArrayList<StructureImage> images2 = new ArrayList<StructureImage>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.gallery);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
PagerAdapter adapter = new PagerAdapter(this, getSupportFragmentManager());
viewPager.setAdapter(adapter);
this.db = new Database(this);
db.database();
getImageListFromServer();
// GridView list = (GridView) layout.findViewById(R.id.list);
// list.setAdapter(new AdapterImage(images));
}//end oncreate
private void getImageListFromServer() {
String result = Webservice.readUrl("http://192.168.1.100/file-server/service.php", null);
if (result != null) {
try {
db.open();
JSONArray tasks = new JSONArray(result);
String[] array_1 = new String[100];
for (int i1 = 0; i1 < db.count_gallery(); i1++) {
array_1[i1] = db.Display_gallery(i1, 0);
}
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
String id = object.getString("id");
String title = object.getString("title");
String tozihat = object.getString("tozihat");
String thumbnail = object.getString("thumbnail");
int pars = Integer.parseInt(id);
Log.i("LOG", "i=" + i);
if (Arrays.asList(array_1).contains(id)) {
Log.i("LOG", "NO ! new Record");
} else {//new id}
db.inser_gallery(pars, title, tozihat, thumbnail);
}
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
db.close();
fill_listview();
}
private void getImageListFromServer2() {
String result = Webservice.readUrl("http://192.168.1.100/file-server/service.php", null);
if (result != null) {
try {
db.open();
JSONArray tasks = new JSONArray(result);
String[] array_1 = new String[100];
for (int i1 = 0; i1 < db.count_news(); i1++) {
array_1[i1] = db.Display_news(i1, 0);
}
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
String id = object.getString("id");
String title = object.getString("title");
String tozihat = object.getString("tozihat");
String thumbnail = object.getString("thumbnail");
int pars = Integer.parseInt(id);
Log.i("LOG", "i=" + i);
if (Arrays.asList(array_1).contains(id)) {
Log.i("LOG", "NO ! new Record");
} else {//new id}
db.inser_news(pars, title, tozihat, thumbnail);
}
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
db.close();
fill_listview2();
}
private void fill_listview() {
images.clear();
G.pagenumber.clear();
G.imageIds.clear();
G.imageTitles.clear();
G.filenaming.clear();
db.open();
G.dbcountposition = db.count_gallery();
for (int i = 0; i < db.count_gallery(); i++) {
StructureImage image = new StructureImage();
image.id = db.Display_gallery(i, 0);
image.title = db.Display_gallery(i, 1);
image.tozihat = db.Display_gallery(i, 2);
image.thumbnail = db.Display_gallery(i, 3);
// Start - add for view pager
int imageId = G.context.getResources().getIdentifier("image" + db.Display_gallery(i, 0), "drawable", G.context.getPackageName());
Log.i("LOG", "image id: " + imageId);
G.pagenumber.add(i);
G.imageIds.add(imageId);
G.imageTitles.add("" + db.Display_gallery(i, 1));
G.filenaming.add("" + db.Display_gallery(i, 3));
// End
int pp = Integer.parseInt(db.Display_gallery(i, 0));
Log.i("LOG2", pp + "--- 1");
if (pp > 17) {
Log.i("LOG2", "image.thumbnail" + image.thumbnail);
DownloadManager.addToDownloadList(image.thumbnail);
}
images.add(image);
}
Collections.sort(images);
Collections.reverse(images);
adapter.notifyDataSetChanged();
db.close();
}
private void fill_listview2() {
images2.clear();
G.pagenumber2.clear();
G.imageIds2.clear();
G.imageTitles2.clear();
G.filenaming2.clear();
db.open();
G.dbcountposition2 = db.count_news();
for (int i = 0; i < db.count_news(); i++) {
StructureImage image = new StructureImage();
image.id = db.Display_news(i, 0);
image.title = db.Display_news(i, 1);
image.tozihat = db.Display_news(i, 2);
image.thumbnail = db.Display_news(i, 3);
// Start - add for view pager
int imageId = G.context.getResources().getIdentifier("image" + db.Display_news(i, 0), "drawable", G.context.getPackageName());
Log.i("LOG", "image id: " + imageId);
G.pagenumber2.add(i);
G.imageIds2.add(imageId);
G.imageTitles2.add("" + db.Display_news(i, 1));
G.filenaming2.add("" + db.Display_news(i, 3));
// End
int pp = Integer.parseInt(db.Display_news(i, 0));
Log.i("LOG2", pp + "--- 1");
if (pp > 17) {
Log.i("LOG2", "image.thumbnail" + image.thumbnail);
DownloadManager.addToDownloadList(image.thumbnail);
}
images.add(image);
}
Collections.sort(images2);
Collections.reverse(images2);
adapter.notifyDataSetInvalidated();
db.close();
}
private boolean isNetworkConnected() {// chek network
ConnectivityManager cm = (ConnectivityManager) getSystemService(G.context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
G.internet_con = 0;// No network
return false;
} else
G.internet_con = 1;// network OK
return true;
}
private void alertdialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(G.context);
builder.setIcon(android.R.drawable.ic_dialog_info);
builder.setTitle("خطا در برقراری ارتباط");
builder.setMessage(" تنظیمات اینترنت خود را چک کنید و دوباره تلاش کنید");
builder.setCancelable(false);
builder.setPositiveButton("خب", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
isNetworkConnected();
// intent = new Intent(MainActivity.this, MainActivity.class);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// startActivity(intent);
}
});
builder.create().show();
}
}
最佳答案
在您的 onCreate 中,您有一个名为 adapter
的局部变量,您还有一个名为 adapter
的全局变量,您从未设置全局适配器变量,这就是为什么它为空
关于android - fragment 中的 adapter.notifyDataSetChanged(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254536/
我正在尝试在我的 recyclerview 方法上实现此方法 Changing background color of selected item in recyclerview 我正确地遵循了脚本,
我有一个列表,其中填充了自定义 ArrayAdapter。 我想每秒更新一个进度条,所以我尝试使用 notifyDataSetChanged() 来重新绘制列表,但它似乎不起作用。 最佳答案 您如何更
我正在改进我的应用程序稳定性和性能,但现在我遇到了来自 Android Studio 的警告。请考虑以下适配器类: private class CoinsAdapter(private val fra
我正在制作一个Android来做名为list track的列表应用程序,现在我仍在研究该应用程序的基础知识。无论如何,我为列表 View 创建了一个上下文菜单,该上下文菜单只有1个选项“删除”,它的意
我想从另一个线程调用adapter.notifyDataSetChanged()。我读到我应该使用 AsyncTask 并在执行后执行 adapter.notifyDataSetChanged() 。
我知道这个问题已被问过数千次,但由于某种原因我找不到适合我的情况的答案。 我拥有的是一个从 Web 服务获取数据并用信息填充列表的线程。然后我想按下一个按钮并调用同一线程来获取更多数据并将其添加到列表
friend , 我正在为 android ListView 使用以下自定义适配器我面临的问题是调用 notifydatasetchanged() 后位置错误; 我第一次将数据与列表位置绑定(bind
我在 windows 7 64bit 下使用 android 1.6当我从扩展 BaseAdapter 的适配器对象调用 notifyDataSetChanged() 时,我得到了运行时异常 我尝试使
我有一个类 Myadapter extends BaseAdapter.in Myadapter 我更改了 MyListView 数据然后调用 notifyDataSetChanged() 方法,比如
我一直在寻找年龄并尝试了几个月。我永远无法让我的观点(任何观点)无效。这里有什么问题,任何人都可以告诉我吗?谁能告诉我如何使用这些无效方法。提前致谢! if(resul
在我的 Activity 中,我有两个 ListView ,因此我使用了两个不同的适配器。我的要求是在两个列表项中我都有一个按钮。单击任何 ListView 中的按钮,两个 ListView 中的数据
我有一个用于我的 ListView 的适配器,然后我需要使用 SensorChange 方法中的 notifydatasetchanged 方法刷新它。你知道 SensorChange 方法被频繁快速
我正在使用 FragmentStatePagerAdapter 来实现 VerticalPageAdapter 的目的,我必须为与 Button< 相关的相同 Fragment 创建动态编号 被按下,
这个问题在这里已经有了答案: Custom Adapter getView() method is not called (6 个答案) 关闭 7 年前。 这是我的代码我想在 ListView 中显
我正在尝试做的事情: 按下添加按钮时,将值从 EditText 插入到数据库。 用数据库中的数据填充 ListView 。 问题: 当我单击添加按钮时,它会将值插入到数据库中,但不会将其填充到 Lis
我正在尝试制作一个像 tinder 一样刷卡的应用程序。我有一个 Texview 上面有一些文字,当我刷下一张卡片时有另一个文字等等。我还想做的是当我单击一个按钮以删除屏幕上的卡片并转到下一张时。我正
我正在制作一个程序,该程序将寻找与手机蓝牙设备配对的程序,显示它们及其地址以供用户查看,并且当用户已经在他的手机中打开 Bt 时它工作正常。当他不这样做时会出现问题,导致添加到 arrayList 中
有人可以向我解释以下问题的来源: 我有一个列表,根据某些偏好显示多个项目。用户可以通过 SlidingDrawer 更改这些首选项。每当发生这种情况时,我都会获得与新首选项相对应的项目,然后使用以下代
我有一个 ListView ,它使用不同类中的基本适配器显示来 self 的数据库的多个数据。每次我删除或添加一个项目到我的数据库时,我都想刷新我的 ListView 。 这是我的代码,但它没有刷新我
在我的代码中,我有两个 Activity 。 一个是 ListView Activity ,另一个 Activity 用于修改数据。修改数据后,用户将返回到 ListView Activity 。 我
我是一名优秀的程序员,十分优秀!