Android:如何用php mysql实现可搜索微调器

Android:如何用php mysql实现可搜索微调器,android,android-studio,Android,Android Studio,我想用php和mysql实现一个可搜索的微调器,但我很困惑如何实现这一点 这是我的活动 package id.sch.smktelkom.www.crud; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; i

我想用php和mysql实现一个可搜索的微调器,但我很困惑如何实现这一点

这是我的活动

    package id.sch.smktelkom.www.crud;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.toptoche.searchablespinnerlibrary.SearchableSpinner;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class CashDroppingActivity extends AppCompatActivity   implements  SearchableSpinner.OnItemSelectedListener{
SearchableSpinner  spinner;
private AdView mAdView;
String Url="http://192.168.1.109/SqliteSync/country.php";
public static List<String> lst=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cash_dropping);
    new GetData().execute();
    spinner= (SearchableSpinner) findViewById(R.id.dpnr_country1);
    spinner.setTitle("Countries");
    mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
            .build();
    mAdView.loadAd(adRequest);
    spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String text = spinner.getSelectedItem().toString();
    Toast.makeText(getApplicationContext(),text+" is Selected ",Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
class GetData extends AsyncTask<String,String,String>{
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    }
    @Override
    protected String doInBackground(String... params) {
        lst=new ArrayList<String>();
        JsonArrayRequest movieReq = new JsonArrayRequest(Url,
                new Response.Listener<JSONArray>()
                {
                    @Override
                    public void onResponse(JSONArray response) {
                        for(int i=0;i<response.length();i++){
                            try {
                                //Getting json object
                                JSONObject json = response.getJSONObject(i);
                                //Adding the name of the student to array list
                                lst.add(json.getString("CountryName"));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                        ArrayAdapter adapter=new ArrayAdapter(getBaseContext(), R.layout.support_simple_spinner_dropdown_item, lst);
                        spinner.setAdapter(adapter);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                });
        //Creating a request queue
        RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
        //Adding request to the queue
        requestQueue.add(movieReq);
        return null;
    }

        }
    }
package id.sch.smktelkom.www.crud;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Toast;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.JsonArrayRequest;
导入com.android.volley.toolbox.volley;
导入com.google.android.gms.ads.AdRequest;
导入com.google.android.gms.ads.AdView;
导入com.topche.searchablespinnerlibrary.SearchableSpinner;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.List;
公共类CashDroppingActivity扩展AppCompativeActivity实现SearchableSpinner.OnItemSelectedListener{
可搜索微调器微调器;
私人顾问马德维尤;
字符串Url=”http://192.168.1.109/SqliteSync/country.php";
公共静态列表lst=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u cash\u Droping);
新建GetData().execute();
微调器=(SearchableSpinner)findViewById(R.id.dpnr\u country1);
spinner.setTitle(“国家”);
mAdView=(AdView)findviewbyd(R.id.AdView);
AdRequest AdRequest=新建AdRequest.Builder()
.build();
mAdView.loadAd(adRequest);
spinner.setOnItemSelectedListener(此);
}
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String text=spinner.getSelectedItem().toString();
Toast.makeText(getApplicationContext(),text+“已选中”,Toast.LENGTH_SHORT.show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
类GetData扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
lst=新的ArrayList();
JsonArrayRequest movieReq=新的JsonArrayRequest(Url,
新的Response.Listener()
{
@凌驾
公共void onResponse(JSONArray响应){
对于(int i=0;i
我已经试过了,但是最后当我运行它时,数据没有显示出来 它没有崩溃只是数据没有显示出来


非常感谢您的帮助。如果您正在寻找一个像网站一样的可搜索下拉列表,谢谢您:D

使用此选项。您可以通过API从服务器检索所有微调器元素并将其存储在ArrayList中。并在微调器适配器中使用此ArrayList。该库会尽一切努力显示搜索下拉列表(微调器)。希望这对您有所帮助


演示:

wide question,这涉及到发出请求、解析数据和提供视图。首先向我们展示您尝试过的内容。您询问的是PHP和mySQL,但向我们展示的是Android代码???此外,微调器是GUI元素,像mySQL这样的数据库实际上不会参与创建和显示。我尝试了您的URL,但它没有给我任何结果。您确定HTTP请求正确返回吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:ads="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=".CashDroppingActivity">

<com.toptoche.searchablespinnerlibrary.SearchableSpinner
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:spinnerMode="dropdown"
    android:id="@+id/dpnr_country1"
    android:background="#e392e6"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="206dp" />
<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-4229214732740771/5218310041"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="20dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
    <?php


require_once('koneksi.php');
   $sql = "SELECT * FROM collect";
$result = mysqli_query($con, $sql);

if ($result->num_rows >0) {
 // output data of each row
 while($row[] = $result->fetch_assoc()) {

 $tem = $row;

 $json = json_encode($tem);

}}
 else {
 echo "0 results";
}
 echo $json;
$con->close();?>