OnItemClickListner在AutoCompleteTextView中不起作用

时间:2016-10-03 11:32:11

标签: android mysql autocompletetextview

我使用了AutoCompleteTextView,当我从中选择任何项目并在项目中设置Toast时,它会显示另一个数据,如果我选择第一个项目然后它会吐出第一个项目,当我选择第二个项目时它将只覆盖第一个项目。 这是我的代码:

MainActivity.java

   package com.example.sachin.addvisit;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MainActivity extends Activity {

    InputStream is=null;
    String result=null;
    String line=null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new DownloadJSON().execute();

    }
    private class DownloadJSON extends AsyncTask<Void, Void, Void> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }

        @Override
        protected Void doInBackground(Void... voids) {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://10.0.2.2/autocomplete.php");
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
                Log.e("Pass 1", "connection success ");
            } catch (Exception e) {
                Log.e("Fail 1", e.toString());
                Toast.makeText(getApplicationContext(), "Invalid IP Address", Toast.LENGTH_LONG).show();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {
            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();
                Log.e("Pass 2", "connection success ");
            } catch (Exception e) {
                Log.e("Fail 2", e.toString());
            }

            try {
                JSONArray JA = new JSONArray(result);
                JSONObject json = null;
                final String[] str1 = new String[JA.length()];
                for (int i = 0; i < JA.length(); i++) {
                    json = JA.getJSONObject(i);
                    str1[i] = json.getString("name");
                }

                final AutoCompleteTextView text = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
                final List<String> list = new ArrayList<String>();

                for (int i = 0; i < str1.length; i++) {
                    list.add(str1[i]);
                }

                Collections.sort(list);
                ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.my_list_item, list);

             //   dataAdapter.setDropDownViewResource(android.R.layout.simple_list_item_1);
                text.setThreshold(1);
                text.setAdapter(dataAdapter);

              text.setOnItemClickListener(new OnItemClickListener() {
                  @Override
                  public void onItemClick(AdapterView<?> adapterView, View view, int abc, long l) {
                      Toast.makeText(getApplicationContext(), list.get(abc).toString(),Toast.LENGTH_SHORT).show();
                  }
              });


            } catch (Exception e) {
                Log.e("Fail 3", e.toString());
            }
        }
    }

}

此处 autocomplete.php

<?php
$host='127.0.0.1';
$uname='root';
$pwd='';
$db='android';
$con = mysql_connect($host,$uname,$pwd) or die("connection failed");
mysql_select_db($db,$con) or die("db selection failed");
$r=mysql_query("select * from class",$con);
while($row=mysql_fetch_array($r))
{
$cls[]=$row;
}
print(json_encode($cls));
mysql_close($con);
?>

请帮帮我..

1 个答案:

答案 0 :(得分:0)

添加: -

<div class="navigator">
  <div class="pagina">
    <div class="dropdown">
      <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" id="menu1" type="button">Pagina's <span class="caret"></span>
      </button>
      <ul aria-labelledby="menu1" class="dropdown-menu" role="menu">
        <li role="presentation">
          <a href="#" role="menuitem">Pagina 1</a>
        </li>
        <li role="presentation">
          <a href="#" role="menuitem">Pagina 2</a>
        </li>
        <li role="presentation">
          <a href="#" role="menuitem">Pagina 3</a>
        </li>
        <li class="divider" role="presentation"></li>
        <li role="presentation">
          <a href="#" role="menuitem">Contact</a>
        </li>
      </ul>
    </div>
  </div>
  <div class="informatie">
    <div class="dropdown">
      <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" id="menu1" type="button">Informatie <span class="caret"></span>
      </button>
      <ul aria-labelledby="menu1" class="dropdown-menu" role="menu">
        <li role="presentation">
          <a href="#" role="menuitem">informatie 1</a>
        </li>
        <li role="presentation">
          <a href="#" role="menuitem">informatie 2</a>
        </li>
        <li role="presentation">
          <a href="#" role="menuitem">informatie 3</a>
        </li>
        <li class="divider" role="presentation"></li>
        <li role="presentation">
          <a href="#" role="menuitem">Contact</a>
        </li>
      </ul>
    </div>
  </div>
</div>