如果该值取决于提交或用户点击的时间,如何将整数传递给新活动?

问题描述

我有一个应用程序(正在创建中),用户需要及时提交调查(称为MCI或每月签入)。如果签入的完成时间(TOC)在调查日期的AGrade日期之前,则用户会收到100%的信息,8天为85,依此类推(以下为标尺)。

我想显示主活动类中gradingActivity类的用户等级。我有一个Textview来显示名为myUserGrade的内容,其中我将评分设置为评分活动类中从getCompletionDate类收到的getIntExtra的评分。

当前结果/错误-现在,我只有在单击gradingActivity后才能看到用户的等级。当我单击此活动时,只有返回到主活动(或主菜单)后才能看到成绩。此外,我无法继续使用gradingActivity,因为它会立即使我回到主要活动。如果我不单击gradingActivity,则会得到认值0,并且需要在主要活动中显示成绩。

有人知道为什么只在我单击gradingActivity时才显示成绩,而在我单击评分活动时立即返回主菜单吗?

在创建时在主活动中显示

Intent myIntent = getIntent();
MyGrade = myIntent.getIntExtra("finalMCIGrade1Value",0);
myUserGrade.setText("Your grade is: " + MyGrade);

评分等级-来自gradingActivity类

org.threeten.bp.LocalDate AGrade = MCIAvailable.plusDays(5);
org.threeten.bp.LocalDate BGrade = MCIAvailable.plusDays(8);
org.threeten.bp.LocalDate CGrade = MCIAvailable.plusDays(11);
org.threeten.bp.LocalDate DGrade = MCIAvailable.plusDays(15);
org.threeten.bp.LocalDate FGrade = MCIAvailable.plusDays(20); 

来自gradingActivity类的getCompletionDate1-

 public void getCompletionDate1() {

        sessionManager = new SessionManager(this);
        sessionManager.checkLogin();
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setMessage("Loading...");
        progressDialog.show();
       StringRequest stringRequest = new StringRequest(Request.Method.POST,URL_ReadCompletionDate,new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        progressDialog.dismiss();
                        Log.i(TAG,response.toString());


                        try {
                            JSONObject jsonObject = new JSONObject(response);
                            String success = jsonObject.getString("success");
                            JSONArray jsonArray = jsonObject.getJSONArray("read");

                            if (success.equals("1")) {
                                for (int i = 0; i < jsonArray.length(); i++) {
                                    JSONObject object = jsonArray.getJSONObject(i);
                                    int MCIGrade1Value;
                                    String MCIdate = object.getString("start_date").trim();

                                    org.threeten.bp.LocalDate MCIAvailable = org.threeten.bp.LocalDate.parse(MCIdate,dateFormatter);
                                    org.threeten.bp.LocalDate AGrade = MCIAvailable.plusDays(5);
                                    org.threeten.bp.LocalDate BGrade = MCIAvailable.plusDays(8);
                                    org.threeten.bp.LocalDate CGrade = MCIAvailable.plusDays(11);
                                    org.threeten.bp.LocalDate DGrade = MCIAvailable.plusDays(15);
                                    final org.threeten.bp.LocalDate FGrade = MCIAvailable.plusDays(20);

                                    final String DOC = object.getString("TimeofCompletion").trim();
                                    if (object.isNull("TimeofCompletion") && today.isAfter(FGrade)){
                                       
                                        MCIGrade1.setText("%0");
                                        MCIGrade1Value = 0;
                                        Intent myIntent = new Intent(MyCheckIns.this,MainActivity.class);
                                        myIntent.putExtra("finalMCIGrade1Value",MCIGrade1Value);
                                        startActivity(myIntent);
                                        
                                    }
                                    if (!object.isNull("TimeofCompletion")){
                                        DOC1.setText("Completed on " + DOC);
                                        org.threeten.bp.LocalDate TOC = org.threeten.bp.LocalDate.parse(DOC,dateFormatter);
                                        if (TOC.isBefore(AGrade)){
                                            MCIGrade1.setText("%100");
                                            MCIGrade1Value = 100;

                                            final int finalMCIGrade1Value = MCIGrade1Value;
                                            Intent myIntent = new Intent(MyCheckIns.this,MainActivity.class);
                                            myIntent.putExtra("finalMCIGrade1Value",finalMCIGrade1Value);
                                            startActivity(myIntent);
                                            
                                        } else if (TOC.isBefore(BGrade) && TOC.isAfter(AGrade)) {
                                            MCIGrade1.setText("%85");
                                            MCIGrade1Value = 85;
                                           
                                            final int finalMCIGrade1Value = MCIGrade1Value;
                                            Intent myIntent = new Intent(MyCheckIns.this,finalMCIGrade1Value);
                                            startActivity(myIntent);
                                            
                                        } else if (TOC.isBefore(CGrade) && TOC.isAfter(BGrade)) {
                                            MCIGrade1.setText("%75");
                                            MCIGrade1Value = 75;
                                         
                                            final int finalMCIGrade1Value = MCIGrade1Value;
                                            Intent myIntent = new Intent(MyCheckIns.this,finalMCIGrade1Value);
                                            startActivity(myIntent);

                                          
                                        } else if (TOC.isBefore(DGrade) && TOC.isAfter(CGrade)) {
                                            MCIGrade1.setText("%65");
                                            MCIGrade1Value = 65;
                                    
                                            final int finalMCIGrade1Value = MCIGrade1Value;
                                            Intent myIntent = new Intent(MyCheckIns.this,finalMCIGrade1Value);
                                            startActivity(myIntent);
                                           
                                            
                                        } else if (TOC.isAfter(DGrade)) {
                                            MCIGrade1.setText("%55");
                                            MCIGrade1Value = 55;
                                            
                                            final int finalMCIGrade1Value = MCIGrade1Value;
                                            Intent myIntent = new Intent(MyCheckIns.this,finalMCIGrade1Value);
                                            startActivity(myIntent);
                                           
                                            

                                        }else {
                                            Drawable assignment;
                                            assignment = getResources().getDrawable(R.drawable.ic_assignment_black_24dp);
                                            warning1.setimageDrawable(assignment);
                                            MCIGrade1.setText("Grade");
                                            DOC1.setText("To be completed");
                                        }

                                    }


                            }
                            }
                        } catch (JSONException e) {
                            e.printstacktrace();
                            progressDialog.dismiss();

                        }
                    }
                },new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        progressDialog.dismiss();


                    }
                }) {
            @Override
            protected Map<String,String> getParams() throws AuthFailureError {
                Map<String,String> params = new HashMap<>();
                params.put("id",getId);
                return params;
            }

        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)