Reading data from parse database in textview

  • Replies:1
Abdulmajeed Alroumi
  • Forum posts: 5

Oct 19, 2015, 8:39:49 PM via Website

I am trying this features where a user can create questionnaire send it to another user's inbox and as a user click on the inbox message the data will be presented in another Activity as TextView. In other words, I am trying to input data as edit text in one view, save it in parse and pass to another Activity retrieve that data from Parse database in a text view. So far I was able to do everything but I do not know why it is not working? I am not able to display the data or retrieve it in VoteAnswer Activity. Illustration of code is below:

I have been struggling with this for a week. Please help

VoteActivity below as it was success:

Intent intent = this.getIntent();
mainText = (EditText) findViewById(R.id.questionVote);
mTextOne = (EditText) findViewById(R.id.choiceOne);
mTextTwo = (EditText) findViewById(R.id.choiceTwo);
mTextThree = (EditText) findViewById(R.id.choiceThree);
mButton =(Button) findViewById(R.id.createQ);
mButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        postmaintText = mainText.getText().toString();
        posttextOne = mTextOne.getText().toString();
        posttextTwo = mTextTwo.getText().toString();
        posttextThree = mTextThree.getText().toString();
        postmaintText.trim();
        posttextOne.trim();
        posttextTwo.trim();
        posttextThree.trim();
        if (postmaintText.isEmpty() || posttextOne.isEmpty() || posttextTwo.isEmpty()|| posttextThree.isEmpty())
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(VoteActivity.this);
            builder.setMessage(R.string.voteMessage)
                    .setTitle(R.string.vote_error_title)
                    .setPositiveButton(android.R.string.ok,null);
            AlertDialog dialog = builder.create();
            dialog.show();
        }
        else
        {
            final ParseObject post = new ParseObject("Messages");
            post.put("questionare", postmaintText);
            post.put("optionOne", posttextOne);
            post.put("optionTwo", posttextTwo);
            post.put("optionThree", posttextThree);
            post.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                if (e==null) {
                // questioner posted successfully
                    Intent intent = new Intent(VoteActivity.this, recipientsActivity.class);
                    vote = new Vote (post.getObjectId(), postmaintText, posttextOne, posttextTwo,posttextThree);
                    String mainTextt = mainText.getText().toString();
                    String optionOnee = mTextOne.getText().toString();
                    String optionTwoo= mTextTwo.getText().toString();
                    String optionThree = mTextThree.getText().toString();
                    // below is the intent where the list of recipents will be displayed for the user, that is where the app crashes
                    intent.putExtra(parseConstants.MAIN_QUESTIONRARE, mainTextt);
                    intent.putExtra(parseConstants.OPTION_ONE, optionOnee);
                    intent.putExtra(parseConstants.OPTION_TWO, optionTwoo);
                    intent.putExtra(parseConstants.OPTION_THREE, optionThree);
                    intent.putExtra(parseConstants.KEY_FILE_TYPE, parseConstants.TYPE_QUESTIONARE);
                    Toast.makeText(getApplication(), "Sent", Toast.LENGTH_SHORT).show();
                    startActivity(intent);
                }
                else {
                    Toast.makeText(getApplicationContext(), "Failed to post", Toast.LENGTH_SHORT).show();
                }

It directs to recipients and to inbox fragments from there

      else if (messageType.equals(parseConstants.TYPE_QUESTIONARE)) {
  //  AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    Intent intent = new Intent(getActivity(), VoteAnswer.class);
    startActivity(intent);
}

Finally, from inbox it goes to VoteAnswer.Activity here is the part I am not able to display the data into textview

    public class VoteAnswer extends ActionBarActivity {
protected TextView questionare ;
protected TextView mOne ;
protected TextView mTwo ;
protected TextView  mThree ;
private String question;
private String mO;
private String mT;
private String mH;
private List<Vote> mVotes;
String obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vote_answer);
    questionare = (TextView) findViewById(R.id.mainQ);
    mOne = (TextView) findViewById(R.id.optionO);
    mTwo = (TextView) findViewById(R.id.optionTW);
    mThree = (TextView) findViewById(R.id.optionTH);
    getDetails();
    Intent i = getIntent();
   // obj = i.getStringExtra("questionare");
 //  getDetails(obj);
}
   private void getDetails () {
       ParseQuery<ParseObject> query = ParseQuery.getQuery("Messages");
       query.whereEqualTo("objectId",ParseUser.getCurrentUser().getObjectId());
       query.findInBackground( new FindCallback<ParseObject>() {
           @Override
           public void done(List<ParseObject> objects, ParseException e) {
               if (e==null) {
                  for (int i = 0; i <objects.size(); i ++)
                  {
                      questionare.setText(objects.get(i).getString("questionare"));
                      mOne.setText(objects.get(i).getString("optionOne"));
                      mTwo.setText(objects.get(i).getString("optionTwo"));
                      mThree.setText(objects.get(i).getString("optionThree"));
                   }
                   //question = objects.toString("questionare");
                   //mO = objects.toString("optionOne");
                  // mT = objects.toString("optionTwo");
                  // mH = objects.toString("optionThree");
                   //addData();
               }
               else
               {
                   e.printStackTrace();
               }
           }
       });
}

Thanks in advance. I would really love some inputs as I have been struggling with this issue for a week. I do not know what I am missing? I read parse documentation but nothing

Reply
MLSDev Inc.
  • Forum posts: 7

Nov 4, 2015, 12:52:23 PM via Website

Hi,
In VoteActivity instead of

intent.putExtra(parseConstants.MAIN_QUESTIONRARE, mainTextt);
intent.putExtra(parseConstants.OPTION_ONE, optionOnee);
intent.putExtra(parseConstants.OPTION_TWO, optionTwoo);
intent.putExtra(parseConstants.OPTION_THREE, optionThree);
intent.putExtra(parseConstants.KEY_FILE_TYPE, parseConstants.TYPE_QUESTIONARE);

you can use

Bundle b = new Bundle();
b.putString(parseConstants.MAIN_QUESTIONRARE, mainTextt);
b.putString(parseConstants.OPTION_ONE, optionOnee);
b.putString(parseConstants.OPTION_TWO, optionTwoo);
b.putString(parseConstants.OPTION_THREE, optionThree);
b.putString(parseConstants.KEY_FILE_TYPE, parseConstants.TYPE_QUESTIONARE);

intent.putExtras(b);

And in VoteAnswer.Activity you'd better write:

Intent i = getIntent();
final Bundle b = i.getExtras();


if (b != null){
    String mainText = b.getString(parseConstants.MAIN_QUESTIONRARE, "");
    String one = b.getString(parseConstants.OPTION_ONE, "");
   //and so on

   questinore.setText(mainText);
   mOne.setText(one);
   //and so on
 }

Reply