2015-03-24 1 views
0

У меня есть сценарий, где мне нужно передать userType, который является переменной asyncTask. Переменная содержит одно из двух: - учитель или ученик, поступающий с сервера. В AsyncTask, если userType = TEACHER, тогда запущен URL-адрес, и если userType = STUDENT, будет запущен новый URL-адрес.Как проверить в AsyncTask

new GetIncidentsTask(IncidentsActivity.this).execute(userType); 

Отсюда я отправляю пользовательский тип.

Сейчас в AsyncTask я должен проверить Но Unfornately я не могу

if(){ 
      String json = jsonParser.makeHttpRequest(CC.GETINCIDENTS_TEACHER, "GET", 
        null); 
      String details = json.toString(); 
      Log.d("List of Incidents", details); 
      }else { 
       String json = jsonParser.makeHttpRequest(CC.GETINCIDENTS_STUDENT, "GET", 
         null); 
       String details = json.toString(); 
       Log.d("List of Incidents", details); 
      } 

Как проверить? Я застрял в этом довольно долго. Пожалуйста, помогите.

+0

doinbackground метод, имеющий параметр params, просто напишите params [0], вы получите свое значение –

+0

Разберите json, чтобы получить строковое значение, затем проверьте это строковое значение. –

+0

@Tushar: Уже в этой строке новый GetIncidentsTask (IncidentsActivity.this) .execute (userType); Пользовательский тип содержит значение, является ли он учителем или учеником – Priyanka

ответ

0
@Override 
    protected Integer doInBackground(Object... params) { 
     Object obj= params[0]; 
     if(obj instance of Teacher) 
     { 
      // Teacher URL 
     } 
     else 
     { 
      // Student URL 
     } 

    } 
0
@Override 
    protected String doInBackground(String... params) 
    { 
      if (params[0].equals("TEACHER")) 
      { 
       String json = jsonParser.makeHttpRequest(CC.GETINCIDENTS_TEACHER, "GET", 
       null); 
       String details = json.toString(); 
       Log.d("List of Incidents", details); 
      } 
      else 
      { 
       String json = jsonParser.makeHttpRequest(CC.GETINCIDENTS_STUDENT, "GET", 
        null); 
       String details = json.toString(); 
       Log.d("List of Incidents", details); 
      } 
    } 
0
enum userType{ 
    student, 
    teacher; 
} 

class MyData { 
    userType type; 
    //other data 
} 

// теперь здесь я предполагаю, что "JSON" строка содержит данные предварительного фильтра

Gson gson = new Gson() 
    MyData data = gson.fromJson(json, MyData.class); 

    if (data.type==userType.teacher){ 
     String json = jsonParser.makeHttpRequest(CC.GETINCIDENTS_TEACHER, "GET", 
       null); 
     String details = json.toString(); 
     Log.d("List of Incidents", details); 
     } 
    else { 
      String json = jsonParser.makeHttpRequest(CC.GETINCIDENTS_STUDENT, "GET", 
        null); 
      String details = json.toString(); 
      Log.d("List of Incidents", details); 
     } 
+0

http://stackoverflow.com/questions/3069743/coding-conventions-naming-enums – 2Dee

0

Учитывая userType как int или Integer

AsyncTask<Integer,Void,String> task = new AsyncTask<Integer, Void, String>() { 
    @Override 
    protected String doInBackground(Integer... params) { 
      int userType = params[0]; 
      if(userType == STUDENT){ 

      }else{ 

      } 
      return null; 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
    } 
}; 
task.execute(STUDENT); 
Смежные вопросы