Как поместить данные в подраздел в ListView Android Studio

#android #android-studio

Вопрос:

Я следую этому учебнику о том, как искать данные в базе данных, и после его завершения я понял, что в представлении списка есть подраздел. Как я могу использовать подраздел в представлении списка? Так как в верхней части я могу вывести имя, я хотел бы вывести их контактный номер в части подраздела. Как я могу это сделать? Вот пользовательский интерфейс приложения для поиска(я не могу опубликовать фотографию, на которой написано «вам нужно по крайней мере 10 репо»): https://i.stack.imgur.com/t4ZyQ.png

Вот код, которому я следовал:

Search.java

 private Button move;   ListView SubjectListView;  ProgressBar progressBarSubject;  String ServerURL = "http://192.168.1.22/loginregister/search/Search.php";  EditText editText ;  Listlt;Stringgt; listString = new ArrayListlt;Stringgt;();  ArrayAdapterlt;Stringgt; arrayAdapter ;   @Override  protected void onCreate(Bundle savedInstanceState)  {  super.onCreate(savedInstanceState);   setContentView(R.layout.activity_search);   move=findViewById(R.id.button);  move.setOnClickListener(new View.OnClickListener() {  @Override  public void onClick(View view) {  Intent intent = new Intent(Search.this, Ticket.class);  startActivity(intent);  }  });   SubjectListView = (ListView)findViewById(R.id.listview1);   progressBarSubject = (ProgressBar)findViewById(R.id.progressBar);   editText = (EditText)findViewById(R.id.edittext1);   new GetHttpResponse(Search.this).execute();     editText.addTextChangedListener(new TextWatcher() {  @Override  public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {   Search.this.arrayAdapter.getFilter().filter(charSequence);   }   @Override  public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {   }   @Override  public void afterTextChanged(Editable editable) {   }  });     }   private class GetHttpResponse extends AsyncTasklt;Void, Void, Voidgt;  {  public Context context;   String ResultHolder;   public GetHttpResponse(Context context)  {  this.context = context;  }   @Override  protected void onPreExecute()  {  super.onPreExecute();  }   @Override  protected Void doInBackground(Void... arg0)  {  HttpServicesClass httpServiceObject = new HttpServicesClass(ServerURL);  try  {  httpServiceObject.ExecutePostRequest();   if(httpServiceObject.getResponseCode() == 200)  {  ResultHolder = httpServiceObject.getResponse();   if(ResultHolder != null)  {  JSONArray jsonArray = null;   try {  jsonArray = new JSONArray(ResultHolder);   JSONObject jsonObject;   for(int i=0; ilt;jsonArray.length(); i  )  {  jsonObject = jsonArray.getJSONObject(i);   listString.add(jsonObject.getString("name").toString()) ;   }  }  catch (JSONException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }  }  else  {  Toast.makeText(context, httpServiceObject.getErrorMessage(), Toast.LENGTH_SHORT).show();  }  }  catch (Exception e)  {  // TODO Auto-generated catch block  e.printStackTrace();  }  return null;  }   @Override  protected void onPostExecute(Void result)   {  progressBarSubject.setVisibility(View.GONE);   SubjectListView.setVisibility(View.VISIBLE);   arrayAdapter = new ArrayAdapterlt;Stringgt;(Search.this,android.R.layout.simple_list_item_2, android.R.id.text1, listString);   SubjectListView.setAdapter(arrayAdapter);   }  } }  

HttpServiceClass.Java

 public int responseCode;   public String message;   public String response;   public ArrayListlt;NameValuePairgt; ArrayListParams;   public ArrayList lt;NameValuePairgt; headers;   public String UrlHolder;   public String getResponse()  {  return response;  }   public String getErrorMessage()  {  return message;  }   public int getResponseCode()  {  return responseCode;  }   public HttpServicesClass(String url)  {  HttpServicesClass.this.UrlHolder = url;   ArrayListParams = new ArrayListlt;NameValuePairgt;();   headers = new ArrayListlt;NameValuePairgt;();  }   public void AddParam(String name, String value)  {  ArrayListParams.add(new BasicNameValuePair(name, value));  }   public void AddHeader(String name, String value)  {  headers.add(new BasicNameValuePair(name, value));  }   public void ExecuteGetRequest() throws Exception  {  String MixParams = "";   if(!ArrayListParams.isEmpty())  {  MixParams  = "?";   for(NameValuePair p : ArrayListParams)  {  String paramString = p.getName()   "="   URLEncoder.encode(p.getValue(),"UTF-8");   if(MixParams.length() gt; 1)  {  MixParams  = "amp;"   paramString;  }  else  {  MixParams  = paramString;  }  }  }   HttpGet httpGet = new HttpGet(UrlHolder   MixParams);   for(NameValuePair h : headers)  {  httpGet.addHeader(h.getName(), h.getValue());  }   executeRequest(httpGet, UrlHolder);  }   public void ExecutePostRequest() throws Exception  {  HttpPost httpPost = new HttpPost(UrlHolder);  for(NameValuePair h : headers)  {  httpPost.addHeader(h.getName(), h.getValue());  }   if(!ArrayListParams.isEmpty())  {  httpPost.setEntity(new UrlEncodedFormEntity(ArrayListParams, HTTP.UTF_8));  }   executeRequest(httpPost, UrlHolder);  }   private void executeRequest(HttpUriRequest request, String url)  {  HttpParams httpParameters = new BasicHttpParams();   HttpConnectionParams.setConnectionTimeout(httpParameters, 10000);   HttpConnectionParams.setSoTimeout(httpParameters, 10000);   HttpClient httpClient = new DefaultHttpClient(httpParameters);   HttpResponse httpResponse;  try  {  httpResponse = httpClient.execute(request);  responseCode = httpResponse.getStatusLine().getStatusCode();  message = httpResponse.getStatusLine().getReasonPhrase();   HttpEntity entity = httpResponse.getEntity();  if (entity != null)  {  InputStream inputStream = entity.getContent();   response = convertStreamToString(inputStream);   inputStream.close();  }  }  catch (ClientProtocolException e)  {  httpClient.getConnectionManager().shutdown();  e.printStackTrace();  }  catch (IOException e)  {  httpClient.getConnectionManager().shutdown();  e.printStackTrace();  }  }   private String convertStreamToString(InputStream is)  {  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));   StringBuilder stringBuilder = new StringBuilder();   String line = null;  try  {  while ((line = bufferedReader.readLine()) != null)  {  stringBuilder.append(line   "n");  }  }  catch (IOException e)  {  e.printStackTrace();  }  finally  {  try  {  is.close();  }  catch (IOException e)  {  e.printStackTrace();  }  }  return stringBuilder.toString();  }  }