I am having a weird issue in my app. In one of my app activity I am inflating three fragments in it with tabs. Everything works fine. In the fragment in which I am having problem, I have listview which is inflated using adapter and data fro web service. This also works well. Now the problem is this the row which is inflated in adapter, has a hidden view which has visibility=gone in xml. On tap of imageview from that row I make that layout visible through java code. The problem is layout doesn't become visible on tap. I have even set breakpoint on the onClickListener of imageview and it does execute the line which changes the visibility from gone to visible. I am unable to understand what is causing this issue as I am using the same row xml with same data in other screen and there it is working perfectly.
Here is the code
public class FragmentBirdRoutes extends Fragment { AppSharedPreferences appSharedPreferences; String REGISTER_URL=""; ListView lv_birds; private ArrayList<BirdsDataBean> birdsUrlList; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragments_birds, null); appSharedPreferences=AppSharedPreferences.getsharedprefInstance(getActivity()); REGISTER_URL = "http://192.241.162.63/appvist/v1/routebird/"+appSharedPreferences.getRouteId(); birdsUrlList = new ArrayList<>(); lv_birds = (ListView) root.findViewById(R.id.lv_bird); hitBirdsService(); return root; } private void hitBirdsService() { class RegisterUser extends AsyncTask<String, Void, String> { private ProgressDialog mDialog; RequestClass ruc = new RequestClass(); String response = ""; @Override protected void onPreExecute() { super.onPreExecute(); mDialog = new ProgressDialog(getActivity()); mDialog.setMessage("Please Wait ..."); mDialog.setCancelable(false); mDialog.show(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); mDialog.dismiss(); parseBirdResponse(response); //Toast.makeText(getActivity(), s, Toast.LENGTH_LONG).show(); } @Override protected String doInBackground(String[] params) { response = RequestClass.GET(REGISTER_URL); return response; } } RegisterUser ru = new RegisterUser(); ru.execute(); } public void parseBirdResponse(String response) { //String descrip, String observaciones, String descrip_larga, String url_video, String url try { JSONObject jsonObject = new JSONObject(response); Boolean error = jsonObject.getBoolean("error"); if (!error) { JSONArray jsonArray = jsonObject.getJSONArray("birds"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonBirds = jsonArray.getJSONObject(i); int idave=jsonBirds.getInt("idave"); String descrip = jsonBirds.getString("descrip"); String observaciones = jsonBirds.getString("observaciones"); String descrip_larga = jsonBirds.getString("descrip_larga"); String url_video = jsonBirds.getString("url_video"); String url = jsonBirds.getString("url"); String nombre_cientifico = jsonBirds.getString("nombre_cientifico"); int flag=jsonBirds.getInt("flag"); birdsUrlList.add(new BirdsDataBean(flag,idave,descrip, observaciones, descrip_larga, url_video, url, nombre_cientifico)); } ScheduleTaskAdapter scheduleTaskAdapter = new ScheduleTaskAdapter(getActivity(), birdsUrlList); lv_birds.setAdapter(scheduleTaskAdapter); } } catch (JSONException e) { e.printStackTrace(); } } public class ScheduleTaskAdapter extends BaseAdapter { Context context; LayoutInflater layoutInflater; // List<InterestAndLanguageBean> interestAndLanguageBeans=new ArrayList<>(); List<BirdsDataBean> imageList = new ArrayList<>(); public ScheduleTaskAdapter(Context context, List<BirdsDataBean> imagesList) { this.context = context; this.imageList = imagesList; layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return imageList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = layoutInflater.inflate(R.layout.birds_row, parent, false); holder.iv_birds = (ImageView) convertView.findViewById(R.id.iv_bird); holder.frameLayout = (FrameLayout) convertView.findViewById(R.id.frame_birds); holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.detail_view); holder.imageView = (ImageView) convertView.findViewById(R.id.up); holder.iv_video = (ImageView) convertView.findViewById(R.id.iv_video); holder.iv_sound = (ImageView) convertView.findViewById(R.id.iv_sound); holder.tv_short_descript = (TextView) convertView.findViewById(R.id.tv_short_descript); holder.tv_category = (TextView) convertView.findViewById(R.id.tv_category); holder.tv_long_description = (TextView) convertView.findViewById(R.id.tv_long_description); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } Uri myUri = Uri.parse(birdsUrlList.get(position).getUrl()); Glide.with(getActivity()).load(myUri).placeholder(R.drawable.birds).into(holder.iv_birds); holder.tv_short_descript.setText(birdsUrlList.get(position).getDescrip()); holder.tv_long_description.setText(birdsUrlList.get(position).getDescrip_larga()); holder.tv_category.setText(birdsUrlList.get(position).getNombre_cientifico()); final ViewHolder finalHolder = holder; holder.frameLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finalHolder.linearLayout.setVisibility(View.VISIBLE); finalHolder.iv_sound.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(birdsUrlList.get(position).getUrl_video()))); } catch (ActivityNotFoundException e) { e.printStackTrace(); } } }); finalHolder.iv_video.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //hitBirdSeenService(birdsUrlList.get(position).getIdave()); // finalHolder.iv_video.setImageResource(R.drawable.eye_selected); } }); } }); holder.imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finalHolder.linearLayout.setVisibility(View.GONE); } }); //Picasso.with(context).load(myUri).placeholder(R.drawable.image).into(holder.pic); //malevich.load(helperTaskBeanList.get(position).getImage()).into(holder.pic); return convertView; } } static class ViewHolder { ImageView iv_birds,imageView,iv_video,iv_sound; FrameLayout frameLayout; LinearLayout linearLayout; TextView tv_short_descript,tv_category,tv_long_description; } }
Xml for row
<?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="wrap_content" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/frame_birds" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:layout_width="match_parent" android:layout_height="200dp" android:scaleType="fitXY" android:id="@+id/iv_bird"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="bottom" android:layout_marginBottom="5dp" android:layout_marginLeft="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ffffff" android:text="@string/name" android:textSize="24sp" android:textStyle="bold" android:id="@+id/tv_short_descript"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#ffffff" android:text="@string/bird_sub_category" android:id="@+id/tv_category"/> </LinearLayout> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone" android:background="#ffffff" android:id="@+id/detail_view"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/bird_hidden_text" android:textSize="20sp" android:padding="20dp" android:id="@+id/tv_long_description"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="center"> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/eye110" android:id="@+id/iv_video"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/right" android:layout_marginTop="25dp" android:layout_marginLeft="15dp" android:id="@+id/iv_next"/> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/ear" android:layout_marginLeft="15dp" android:id="@+id/iv_sound"/> </LinearLayout> <ImageView android:layout_width="match_parent" android:layout_height="20dp" android:background="#D6D6D6" android:layout_marginTop="20dp" android:src="@drawable/up" android:layout_gravity="center" android:id="@+id/up"/> </LinearLayout> </LinearLayout> xml for the activity
<?xml version="1.0" encoding="utf-8"?> <!--<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff">--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <include layout="@layout/header_1" /> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="50dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000" android:weightSum="3" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:weightSum="1" android:orientation="horizontal" android:id="@+id/lin_birds"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:text="@string/aves" android:textColor="#ffffff" android:gravity="center" android:layout_gravity="center" android:layout_weight="0.99" android:id="@+id/fragment_aves"/> <View android:layout_width="0dp" android:layout_height="30dp" android:layout_weight="0.01" android:background="#ffffff" android:layout_marginTop="10dp"/> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:weightSum="1" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:text="@string/routes" android:textColor="#ffffff" android:gravity="center" android:layout_gravity="center" android:layout_weight="0.99" android:id="@+id/fragment_routes"/> <View android:layout_width="0dp" android:layout_height="30dp" android:layout_weight="0.01" android:background="#ffffff" android:layout_marginTop="10dp"/> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/information" android:textColor="#ffffff" android:gravity="center" android:layout_gravity="center" android:id="@+id/fragment_information"/> </LinearLayout> </LinearLayout> </LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/frame_details" /> </LinearLayout> <!-- </ScrollView>-->
No comments:
Post a Comment