Sneha
Sneha

Reputation: 1051

How to get data from Server using ID in Android

I am writing a Native Android App in which i am using PHP MYSQL to get data from server

In this [Appointment List] i am allowing user to Reschedule an Appointment, but whenever i do tap on item getting blank form, in short not getting data for that particular appointment which i have clicked in a List.

Question

How to show data in a form using AppointmentID ?

Below i am showing all required code written by me [Client & Server Side both]

UpcomingActivity.java:

        @Override
        public boolean onContextItemSelected(MenuItem item) {
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
            int menuItemIndex = item.getItemId();
            String[] menuItems = Cmd;
            String CmdName = menuItems[menuItemIndex];
            // Check Event Command
            if ("Cancel".equals(CmdName)) 
            {
                Toast.makeText(UpcomingActivity.this,"Selected Cancel",Toast.LENGTH_LONG).show();           
            }
            else if ("Reschedule".equals(CmdName)) 
            {
                Toast.makeText(UpcomingActivity.this,"Selected Update",Toast.LENGTH_LONG).show();

                String sAppointmentID = MyArrList.get(info.position).get("UserID").toString();                      
                Log.d(tag, "sAppointmentID :: " + sAppointmentID);

                Intent newActivity = new Intent(UpcomingActivity.this, UpdateActivity.class);
                newActivity.putExtra("UserID", sAppointmentID);                     
                startActivity(newActivity);
            }             
            return true;
        }

UpdateActivity.java:

            public void showInfo()
            {
                final TextView tAppointmentID = (TextView)findViewById(R.id.txtUsername);
                final TextView tType = (TextView)findViewById(R.id.txtName);
                final TextView tDate = (TextView)findViewById(R.id.txtEmail);
                final TextView tTime = (TextView)findViewById(R.id.txtTel);

                Button btnSave = (Button) findViewById(R.id.btnSave);
                Button btnCancel = (Button) findViewById(R.id.btnCancel);
                String url = "http://10.0.2.2/appointments/getByMemberID.php";

                Intent intent= getIntent();
                final String AppointmentID = intent.getStringExtra("AppointmentID");
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("sAppointmentID", AppointmentID));

                String resultServer  = getHttpPost(url,params);
                String strAppointmentID = "";               
                String strType = "";
                String strDate = "";
                String strTime = "";

                JSONObject c;
                try {
                    c = new JSONObject(resultServer);

                    strAppointmentID = c.getString("UserID");
                    Log.d(TAG, "String strAppointmentID" + strAppointmentID);
                    strType = c.getString("Type");
                    Log.d(TAG, "String strType" + strType);
                    strDate = c.getString("Date");
                    Log.d(TAG, "String strDate" + strDate);
                    strTime = c.getString("Time");
                    Log.d(TAG, "String strTime" + strTime);

                    if(!strAppointmentID.equals(""))
                    {
                        tAppointmentID.setText(strAppointmentID);
                        tType.setText(strType);
                        tDate.setText(strDate);
                        tTime.setText(strTime);
                    }   
                    else
                    {
                        tAppointmentID.setText("-");
                        tType.setText("-");
                        tDate.setText("-");
                        tTime.setText("-"); 
                        btnSave.setEnabled(false);
                        btnCancel.requestFocus();
                    }

                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }   
            }

Upvotes: 2

Views: 3553

Answers (3)

Amit Modak
Amit Modak

Reputation: 169

1) Try weather your PHP code is working fine or not... You can do that by running directly on server and passing UserId and appoinmentId as a parameter by ?

For eg.... www.abc.com?sUserId=123?sAppointmentID=456

See weather it's showing you proper output.

2) you are calling getByMemberID.php but you have specified code of it but you are not passing "AppointmentID" for that also check with php code weather you are retriving it ??

3) On call of updateData.php in UpdateActivity.java: you are not providing "AppointmentID" but you are retriving it in php code it will get null value by default which will be an error ofcourse

Upvotes: 0

Shushant
Shushant

Reputation: 1635

  1. first of all make sure that you have valid AppointmentID and UserIdand

  2. in UpcomingActivity.java at method onContextItemSelected you are not providing AppointmentID instead you are only providing UserID to the Intend

  3. List but in Updateactivity at method showData you are requesting intent.getStringExtra("AppointmentID") which is invaild.

so your update your UpcomingActivity.java should look like this

 public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
        int menuItemIndex = item.getItemId();
        String[] menuItems = Cmd;
        String CmdName = menuItems[menuItemIndex];
        // Check Event Command
        if ("Cancel".equals(CmdName)) 
        {
            Toast.makeText(UpcomingActivity.this,"Selected Cancel",Toast.LENGTH_LONG).show();           
        }
        else if ("Reschedule".equals(CmdName)) 
        {
            Toast.makeText(UpcomingActivity.this,"Selected Update",Toast.LENGTH_LONG).show();

            String sAppointmentID = MyArrList.get(info.position).get("UserID").toString();                      
            Log.d(tag, "sAppointmentID :: " + sAppointmentID);

            Intent newActivity = new Intent(UpcomingActivity.this, UpdateActivity.class);
            newActivity.putExtra("UserID", sAppointmentID);
            newActivity.putExtra("AppointmentID", MyArrList.get(info.position).get("AppointmentID").toString());// <== here                     
            startActivity(newActivity);
        }             
        return true;
    }

Upvotes: 2

Samuil Yanovski
Samuil Yanovski

Reputation: 2867

I noticed a couple of issues (might be typos, but I prefer to ask anyway):

  • You are calling a getByMemberID.php, but you have not included its source code in the question - you do have such service, right? :)
  • In the onContextItemSelected you are starting the UpdateActivity and pass UserID as extra. But in the showInfo method of that activity you are trying to get AppointmentID from the intent's extras, so it is not processing any data.

Upvotes: 1

Related Questions