как предложить данные из базы данных MySQL для AutoCompleteTextView и относиться к счетчику - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть один AutoCompleteTextView и один Spinner. Первый для city_name и второй для clg_name. Когда данные выбираются из AutoCompleteTextView, должны быть показаны соответствующие колледжи. Но AutoCompleteTextView не показывает никаких предложений, а второй spinner не заполняется.

Вот мой код, который я пытался использовать, но он совсем не работает. Я буду признателен за вашу помощь.

Вот код Java: - ClgActivity.java

    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    import android.widget.Button;
    import android.widget.Spinner;
    import android.widget.Toast;

    import org.json.JSONArray;
    import org.json.JSONObject;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.ArrayList;
    import java.util.List;

    public class ClgActivity extends AppCompatActivity {
 AutoCompleteTextView text;
Button bt1;
InputStream is = null;
String result = null;
String line = null;

Spinner  spinner2;
String[] city_name, college;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_clg);
    text = (AutoCompleteTextView) findViewById(R.id.spn1);
    text.setEnabled(false);
   spinner2 = (Spinner) findViewById(R.id.spn2);
    final List<String> list1 = new ArrayList<String>();
    final List<String> list2 = new ArrayList<String>();
    bt1 = (Button) findViewById(R.id.bn7);

            try
            {
                URL url=new  URL("http://10.0.2.2/spinner1.php");

                HttpURLConnection httpURLConnection=(HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoInput(true);


            }
            catch(Exception e)
            {
                Log.e("Fail 1", e.toString());
                Toast.makeText(getApplicationContext(), "Invalid IP Address",Toast.LENGTH_LONG).show();
                finish();
            }


            try
            {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");
                }
                is.close();
                result = sb.toString();
            }
            catch(Exception e)
            {
                Log.e("Fail 2", e.toString());
            }


            try
            {
                JSONArray JA=new JSONArray(result);
                JSONObject json= null;
                city_name = new String[JA.length()];
                college = new String[JA.length()];

                for(int i=0;i<JA.length();i++)
                {
                    json=JA.getJSONObject(i);
                    city_name[i] = json.getString("city_name");
                    college[i]=json.getString("clg_name");
                }
                Toast.makeText(getApplicationContext(), "sss",Toast.LENGTH_LONG).show();

                for(int i=0;i<city_name.length;i++)
                {
                    list1.add(city_name[i]);
                    list2.add(college[i]);
                }

                spinner_fn();
                ArrayAdapter dataAdapter1 = new ArrayAdapter<String>(getApplicationContext(),
                        android.R.layout.simple_spinner_item, list1);
                dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

                text.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {


                        spinner2.setSelection(position);

                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) {

                    }

                });

                text.setAdapter(dataAdapter1);
            }
            catch(Exception e)
            {

                Log.e("Fail 3", e.toString());


            }
        }






private void spinner_fn() {





    ArrayAdapter dataAdapter2 = new ArrayAdapter<String>(getApplicationContext(),
            android.R.layout.simple_spinner_item, college);
    dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(dataAdapter2);





    spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) {


            text.setSelection(position);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });

}
}

Вот XML-файл: -activity_clg.xml

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".ClgActivity">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true"
    android:orientation="vertical">
<ImageView
    android:id="@+id/iv"
    android:layout_width="match_parent"
    android:layout_height="97dp"
    android:layout_gravity="center"
    android:layout_marginTop="10dp"
    android:src="@drawable/splash_img" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/clg"
    android:fontFamily="@font/rm"
    android:textColor="@color/text"
    android:textSize="18sp"
    />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:gravity="center"
        android:weightSum="1"
        android:orientation="horizontal">

        <AutoCompleteTextView
            android:id="@+id/spn1"
            android:layout_width="220dp"
            android:layout_height="60dp"
            android:hint="--Select City--" />

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:layout_marginTop="10dp"
        android:weightSum="1">

        <Spinner
            android:id="@+id/spn2"
            android:layout_width="220dp"
            android:layout_height="60dp"
            android:autofillHints="--Select Area--" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:weightSum="1">
<Button
    android:id="@+id/bn7"
    style="@style/Widget.AppCompat.Button.Small"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/title"
    android:text="Search"
    android:textColor="@color/white"
    android:textSize="20sp"
    android:textStyle="italic"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
    </LinearLayout>
</LinearLayout>
 </ScrollView>

Вот файл php: -spinner1.php

    <?php 

    $sql = "SELECT * FROM cities";

    require_once('newcon.php');

    $r = mysqli_query($con,$sql);

    $result = array();

    while($row = mysqli_fetch_array($r)){
    array_push($result,array(
    'city_name'=>$row['city_name'],

    ));
   }

     echo json_encode(array('result'=>$result));

     mysqli_close($con);
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...