#java #android
#java #Android
Вопрос:
При запуске этого кода он всегда проходит через if
блок. Не имеет значения, count
есть 0
это или нет, он всегда выполняет этот блок.
if (!count.equals("0")) {
Toast.makeText(getActivity(),"No data in there.Count = " count, Toast.LENGTH_LONG).show();
return;
}else{
Toast.makeText(getActivity(),"Count = " count, Toast.LENGTH_LONG).show();
Fragment fragment = new PGSubCatFragment();
Bundle bCatID = new Bundle();
bCatID.putString("catid", cID);
fragment.setArguments(bCatID);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame, fragment).commit();
}
Не могли бы вы объяснить, что не так?
Вот консольный вывод моего приложения:
D/PGCatFragment: Count = 0 gallery
I/gralloc.sc8830: gralloc_register_buffer, handle:0x579da7c0, size:0x40200, fd:64
I/gralloc.sc8830: gralloc_register_buffer, handle:0x574508c0, size:0xcc30, fd:69
I/gralloc.sc8830: gralloc_register_buffer, handle:0x549341d8, size:0x40200, fd:67
I/gralloc.sc8830: gralloc_register_buffer, handle:0x579dc708, size:0x40200, fd:80
I/gralloc.sc8830: gralloc_register_buffer, handle:0x579ea370, size:0x40200, fd:82
D/PGSubCatFragment: {"message":"No gallery found","success":0}
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x579da7c0, size:0x40200, fd:64
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x549341d8, size:0x40200, fd:67
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x579dc708, size:0x40200, fd:80
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x579ea370, size:0x40200, fd:82
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x574508c0, size:0xcc30, fd:69
I/gralloc.sc8830: gralloc_register_buffer, handle:0x579ffea0, size:0x40200, fd:62
I/gralloc.sc8830: gralloc_register_buffer, handle:0x57a002d8, size:0x40200, fd:73
I/gralloc.sc8830: gralloc_register_buffer, handle:0x5225ce28, size:0x40200, fd:70
I/gralloc.sc8830: gralloc_register_buffer, handle:0x57a00a60, size:0x40200, fd:72
D/PGCatFragment: {"success":1,"imgCat":[{"catimg":"http://live.jmpcbuiltline.com/admin/upload/gallery/430912.JPG","catid":"1","subcatcount":"5","catname":"Event"},{"catimg":"","catid":"2","subcatcount":"0","catname":"Media"}]}
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x579ffea0, size:0x40200, fd:62
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x57a002d8, size:0x40200, fd:73
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x5225ce28, size:0x40200, fd:70
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x57a00a60, size:0x40200, fd:72
D/PGCatFragment: Count = 5 gallery
I/gralloc.sc8830: gralloc_register_buffer, handle:0x579f5710, size:0x40200, fd:64
I/gralloc.sc8830: gralloc_register_buffer, handle:0x57b4dc88, size:0xcc30, fd:68
I/gralloc.sc8830: gralloc_register_buffer, handle:0x50685a30, size:0x40200, fd:73
I/gralloc.sc8830: gralloc_register_buffer, handle:0x54f8bee8, size:0x40200, fd:80
I/gralloc.sc8830: gralloc_register_buffer, handle:0x579f55f8, size:0x40200, fd:82
D/PGSubCatFragment: {"success":1,"imgSubCat":[{"gname":"1st Event","gid":"1","catimgcount":"11","subcatimg":"http://live.jmpcbuiltline.com/admin/upload/gallery/237156.png"},{"gname":"2nd Event","gid":"2","catimgcount":"14","subcatimg":"http://live.jmpcbuiltline.com/admin/upload/gallery/4425910.JPG"},{"gname":"3rd Event","gid":"3","catimgcount":"11","subcatimg":"http://live.jmpcbuiltline.com/admin/upload/gallery/731556.JPG"},{"gname":"4th Event","gid":"4","catimgcount":"13","subcatimg":"http://live.jmpcbuiltline.com/admin/upload/gallery/967434.JPG"},{"gname":"Organise by JMPC","gid":"5","catimgcount":"15","subcatimg":"http://live.jmpcbuiltline.com/admin/upload/gallery/5253910.JPG"}]}
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x579f5710, size:0x40200, fd:64
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x50685a30, size:0x40200, fd:73
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x54f8bee8, size:0x40200, fd:80
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x579f55f8, size:0x40200, fd:82
D/dalvikvm: GC_FOR_ALLOC freed 6613K, 24% free 22864K/29756K, paused 51ms, total 51ms
I/gralloc.sc8830: gralloc_unregister_buffer, handle:0x57b4dc88, size:0xcc30, fd:68
Комментарии:
1. Что такое count? целое число?
2. » Есть одна переменная, которая не имеет ожидаемого значения, но я не собираюсь показывать вам, откуда взялась эта переменная » Как именно мы должны это отлаживать?
3. count — это строка, и она тоже дает значение, но всегда будет, если условие четного блока равно true или false, я проверил их, поджарив себя
4.
Count = 0 gallery
,Count = 5 gallery
. Вашаcount
переменная не"0"
является, это"0 gallery"
5. @jhamon, пожалуйста, добавьте свой ответ, это слишком очевидно 😉
Ответ №1:
Судя по вашим журналам:
Count = 0 gallery
Count = 5 gallery
count
не является "0"
, но является "0 gallery
Решения могут быть либо:
- получите значение перед добавлением
" gallery"
части - используйте
if(!count.startWith("0 ")){
, не пропуская пробел после 0, в случае, если есть цифры, подобные 05, 06. Но это не будет работать с несколькими 0s. - используйте регулярное
if(!count.matches("0 gallery")){
выражение . - разделите
count
символ пробела и сравните первую возвращенную строку (немного похоже на первый вариант)
Ответ №2:
If count
— строка
затем используйте это if(!count.equalsIgnoreCase("0"))
вместо if(!count.equals("0"))
If count
— это int
затем используйте это if(count != 0))
вместо if(!count.equals("0"))
Комментарии:
1. Если
count
бы это был примитив int, то вы не могли бы использоватьequals