Skip to content

I order my Parse Server with Created Date, All texts and Contents Are Arriving Properly, But the Image is not in Proper Order. Please Help Me. #6570

Closed
@balasubramanian1612s

Description

@balasubramanian1612s

### SportsTab.java

package com.codersport.enjoyfreetime;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;

import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ListView;

import com.borjabravo.readmoretextview.ReadMoreTextView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.parse.FindCallback;
import com.parse.GetCallback;
import com.parse.GetDataCallback;
import com.parse.ParseException;
import com.parse.ParseFile;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import static androidx.constraintlayout.widget.Constraints.TAG;

public class sportsTab extends Fragment {
Context context1;

static ImageButton likeBtn;
static CustomListPosts adapter;

ArrayList<Bitmap> images;
ArrayList<String> des;
ArrayList<String> topic;
ArrayList<String> postId;
ArrayList<String> postLikes;

public sportsTab() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view= inflater.inflate(R.layout.fragment_sports_tab, container, false);
    topic=new ArrayList<>();
    des=new ArrayList<>();
    images=new ArrayList<>();
    postId=new ArrayList<>();
    postLikes=new ArrayList<>();
    likeBtn=(ImageButton)view.findViewById(R.id.likebtn);
    final ListView sportsList=view.findViewById(R.id.sportHobbyList);

    topic.clear();
    des.clear();
    images.clear();
    postId.clear();
    postLikes.clear();

    ParseQuery<ParseObject> allPosts=ParseQuery.getQuery("Posts");
    allPosts.orderByDescending("createdAt");

    allPosts.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> objects, ParseException e) {
            if(e==null && objects!=null){

                for (final ParseObject object : objects){

                    topic.add((String) object.get("Topic"));
                    des.add((String) object.get("Description"));
                    postId.add(object.getObjectId());
                    postLikes.add((String) object.get("LikedBy"));

                    ParseFile imageFile = (ParseFile) object.get("Images");
                    imageFile.getDataInBackground(new GetDataCallback() {
                        @Override
                        public void done(byte[] data, ParseException e) {
                            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
                            images.add(bitmap);
                            Log.i("Image", String.valueOf(bitmap));
                        }
                    });



                }


            }
            Bitmap arrayImage[] = new Bitmap[images.size()];
            for(int j =0;j<images.size();j++){
                arrayImage[j] = images.get(j);
                Log.i("ImageArray", String.valueOf(arrayImage[j]));
            }

            String arrayTopic[] = new String[topic.size()];
            for(int j =0;j<topic.size();j++){
                arrayTopic[j] = topic.get(j);
            }

            String arrayDes[] = new String[des.size()];
            for(int j =0;j<des.size();j++){
                arrayDes[j] = des.get(j);
            }

            String arrayPostId[] = new String[postId.size()];
            for(int j =0;j<postId.size();j++){
                arrayPostId[j] = postId.get(j);
            }

            String arrayPostLikes[] = new String[postLikes.size()];
            for(int j =0;j<postLikes.size();j++){
                arrayPostLikes[j] = postLikes.get(j);
            }


            adapter=new CustomListPosts(context1,arrayTopic,arrayDes,images,arrayPostId,arrayPostLikes);
            sportsList.setAdapter(adapter);



        }
    });




    return view;
}



@Override
public void onAttach(Context context) {
    super.onAttach(context);

    Fragment context3=sportsTab.this;
    Log.i("Fragmet", String.valueOf(context));
    context1=context3.getContext();
    Log.i("Context", String.valueOf(context1));
    context1 = context;
    Log.i("Outside", String.valueOf(context1));
}

}

### CustomListsPosts.java

package com.codersport.enjoyfreetime;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.borjabravo.readmoretextview.ReadMoreTextView;
import com.devs.readmoreoption.ReadMoreOption;
import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
import com.parse.SaveCallback;
import com.skyhope.showmoretextview.ShowMoreTextView;

import java.util.ArrayList;

public class CustomListPosts extends ArrayAdapter {

private String[] topic;
private String[] des;
private String[] postId;
private String[] postLikes;
private ArrayList<Bitmap> image;
private Context context;
int Resources;

public CustomListPosts(@NonNull Context context, String[] topic, String[] des, ArrayList<Bitmap> image,String[] postId,String[] postLikes) {
    super(context, R.layout.post_item,topic);
    Log.i("I am here at ","customlistpos Maint");
    this.context=context;
    this.topic=topic;
    this.des=des;
    this.postLikes=postLikes;
    this.image=image;
    this.postId=postId;
    Resources=R.layout.post_item;


}


public int getCount() {
    return topic.length;
}

public Object getItem(int position) {
    return position;
}

public long getItemId(int position) {
    return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View row=convertView;
    LayoutInflater layoutInflater=LayoutInflater.from(context);
    if(convertView==null)
        row = layoutInflater.inflate(Resources, parent, false);
    Log.i("here","found");
    TextView topicfinal=row.findViewById(R.id.parseposttopic);
    topicfinal.setText(topic[position]);


    ImageView finalImage=row.findViewById(R.id.postImage);
    try {
        if(image.get(position)!=null){
            Bitmap bmp=image.get(position);
            finalImage.setImageBitmap(bmp);}
    }catch (Exception e){
        e.printStackTrace();

    }



    TextView postDes=row.findViewById(R.id.parsepostdes);


    // OR using options to customize

    ReadMoreOption readMoreOption = new ReadMoreOption.Builder(context)
            .textLength(3, ReadMoreOption.TYPE_LINE) // OR
            //.textLength(300, ReadMoreOption.TYPE_CHARACTER)
            .moreLabel("MORE")
            .lessLabel("LESS")
            .moreLabelColor(Color.RED)
            .lessLabelColor(Color.BLUE)
            .labelUnderLine(true)
            .build();

    readMoreOption.addReadMoreTo(postDes, des[position]);
    final ImageView button=row.findViewById(R.id.likebtn);



    /*final ParseQuery<ParseObject> query1=new ParseQuery("Posts");
    try {
        ParseObject object=query1.get(postId[position]);
        String s=(String) object.get("LikedBy");
        if(s!=null){
            Log.i("Users found",s);
            if(s.contains(ParseUser.getCurrentUser().getUsername())){

                Log.i("Users found",s);

            }}


    } catch (ParseException e) {
        e.printStackTrace();
    }*/

    if(postLikes[position]!=null){

        if (postLikes[position].contains(ParseUser.getCurrentUser().getUsername())){

            button.setImageResource(R.drawable.likeon);

        }
        else {

            button.setImageResource(R.drawable.likeoff);
        }

    }


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            final ParseQuery<ParseObject> query=new ParseQuery("Posts");
            query.getInBackground(postId[position], new GetCallback<ParseObject>() {
                @Override
                public void done(ParseObject object, ParseException e) {
                    if(e==null && object!=null && !postLikes[position].contains(ParseUser.getCurrentUser().getUsername())){

                        Log.i("Liked By :",ParseUser.getCurrentUser().getUsername());

                        String likescound=(String) object.get("LikedBy");
                        likescound=likescound+", "+ParseUser.getCurrentUser().getUsername();

                        object.put("LikedBy",likescound);
                        object.saveInBackground();

                    }
                }
            });

            button.setImageResource(R.drawable.likeon);}
    });


    Log.i("I am here at ","customlistpost");
    return  row;
}

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions