dougou1127 2018-09-11 08:38
浏览 103

如何将数据从mysql数据库建议到AutoCompleteTextView并与微调器相关联

I have one AutoCompleteTextView and one Spinner. First for city_name and second for clg_name. When data select from the AutoCompleteTextView,the related colleges should be shown. But the AutoCompleteTextView doesn't show any suggestion and second spinner not populate.

Here is my code that i have tried to use but is not working at all.I will appriciate your help.

Here is the java code:- 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 + "
");
                }
                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) {

        }
    });

}
}

Here is the xml file:-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>

Here is the php file:-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);
    ?>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码