如何进行解析查询?

时间:2016-11-02 13:10:27

标签: android android-intent parse-platform android-parsequeryadapter parserelation

在解析中我有一个类A,它有一个名为 - view的列(关系),它与B类有关(包含不同对象id的不同图像)。现在我想要实现的是: android我有一个活动(A),它有一个回收视图,显示了A类的所有项目。这些项目是可点击的,当点击时,它会将B类中的项目解析为活动(B)。现在的问题是我们无法从活动(A)到活动(B)进行解析查询,以便我们可以在活动(B)中显示B类的项目。

这有什么不同的方法吗?任何这方面的例子都会有额外的帮助。

编辑

MainActivity

public class MainActivity extends AppCompatActivity {
ProgressDialog mProgressDialog;
GridAdapter gridAdapter;
RecyclerView recyclerView;
private List<Grid_G_S> grid_list = new ArrayList<>();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Get the view from gridview_main.xml
    setContentView(R.layout.activity_main);
    // Execute RemoteDataTask AsyncTask
    new RemoteDataTask().execute();
}

// RemoteDataTask AsyncTask
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Create a progressdialog
        mProgressDialog = new ProgressDialog(MainActivity.this);
        // Set progressdialog title
        mProgressDialog.setTitle("Parse.com GridView Tutorial");
        // Set progressdialog message
        mProgressDialog.setMessage("Loading...");
        mProgressDialog.setIndeterminate(false);
        // Show progressdialog
        mProgressDialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {
        // Create the array

        grid_list = new ArrayList<>();
        try {
            ParseQuery<ParseObject> query = new ParseQuery<>("CardViewClass");


            List<ParseObject> object1 = query.find();

            for (final ParseObject country : object1) {
                // Locate images in flag column
                ParseFile image = (ParseFile) country.get("images");
                ParseRelation<ParseObject> p = country.getRelation("view");

                ParseQuery p2 = p.getQuery();

                String f = image.getUrl();

                Log.i("yji"," "+p2);

                List<ParseObject> oc = p2.find();
                for (ParseObject country2:oc){

                    ParseFile imgs = (ParseFile) country2.get("autoImage");
                    String fr = imgs.getUrl();

                }

                Grid_G_S setter = new Grid_G_S();
                setter.setX(p2);
                setter.setTitles((String) country.get("scrollText1"));
                setter.setImages(f);
                grid_list.add(setter);

            }

            }catch (ParseException e){
            Log.e("err", e.getMessage());
        } catch (com.parse.ParseException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {

        recyclerView = (RecyclerView) findViewById(R.id.recycler);
        RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getApplicationContext(),3);
        gridAdapter = new GridAdapter(MainActivity.this, grid_list);
        recyclerView.setLayoutManager(mLayoutManager);
        recyclerView.setItemAnimator(new DefaultItemAnimator());
        recyclerView.setAdapter(gridAdapter);


        mProgressDialog.dismiss();

    }  

GridAdapter

public class GridAdapter扩展了RecyclerView.Adapter {

Context context;
LayoutInflater inflater;
private List<Grid_G_S> grid_g_sList = null;
private ArrayList<Grid_G_S> arraylist;

public GridAdapter(Context context, List<Grid_G_S> grid_list) {

    this.context = context;
    this.grid_g_sList = grid_list;
    inflater = LayoutInflater.from(context);
    this.arraylist = new ArrayList<>();
    this.arraylist.addAll(grid_list);

}


public class MyViewHolder extends RecyclerView.ViewHolder {
    TextView titles;
    ImageView gridImages;
    View mview;

    MyViewHolder(View v) {
        super(v);
        mview = v;
        titles = (TextView) v.findViewById(R.id.grid_single_text);
        gridImages = (ImageView) v.findViewById(R.id.grid_single_image);
    }
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.grid_single_row, parent, false);
    return new MyViewHolder(itemView);
}


@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {

    Grid_G_S item = grid_g_sList.get(position);
    holder.titles.setText(item.getTitles());
    Picasso.with(context)
            .load(grid_g_sList.get(position).getImages())
            .into(holder.gridImages);

    holder.mview.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(context, Secondactivity.class);
            intent.putExtra("image", grid_g_sList.get(position).getImages());
            intent.putExtra("query", String.valueOf(grid_g_sList.get(position).getX()));
            context.startActivity(intent);
        }
    });


}

@Override
public int getItemCount() {
    return grid_g_sList.size();
}

GridGetterSetter

公共类Grid_G_S {

String Images;
String Titles;
ParseQuery x;

public String getImages() {
    return Images;
}

public void setImages(String images) {this.Images = images;}

public String getTitles() {
    return Titles;
}

public void setTitles(String titles) {this.Titles = titles;}

public ParseQuery getX() {
    return x;
}

public void setX(ParseQuery x) {this.x = x;}

SecondActivity

public class Secondactivity extends AppCompatActivity {

String q1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_secondactivity);
    new DownloadingTask().execute();

    Intent i = getIntent();
    String images = i.getStringExtra("image");
    q1 = i.getStringExtra("query");
    Log.i("this is ", " " + q1);
}

private class DownloadingTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... voids) {

        ParseQuery<ParseObject> query = new ParseQuery<>("CardViewClass");


        try {
            List<ParseObject> object1 = query.find();
            for (final ParseObject country : object1) {
                // Locate images in flag column
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return null;
    }

}

0 个答案:

没有答案