2014-11-18 4 views
0

Я показываю список сетей в ListView, и я хочу, когда я нажимаю на элемент, который показывает EditText, запрашивая password. Я не могу показать EditText на ListView на клике пункта. Любая помощь будет appreciated.Here мой код:Как показать EditText в элементе списка списка нажмите в android?

package com.example.scanwifi; 
import java.net.DatagramSocket; 
import java.net.SocketException; 
import java.util.List; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.net.wifi.ScanResult; 
import android.net.wifi.WifiManager; 
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.EditText; 
import android.widget.ListView; 
import android.widget.Toast; 
public class MainActivity extends Activity { 
private ClientDatagramSender clientdatagramsender=null; 
private DatagramSocket datagramsocket=null; 
    EditText etpin; 
    WifiManager mainWifiObj; 
    WifiScanReceiver wifiReciever; 
    ListView list=null; 
    String wifis[]; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     list = (ListView)findViewById(R.id.listview1); 
     mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     wifiReciever = new WifiScanReceiver(); 
     mainWifiObj.startScan(); 
     list.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       etpin = (EditText) findViewById(R.id.etPin); 
       etpin.setVisibility(View.VISIBLE); 

      } 
     }); 
     try { 
      datagramsocket=new DatagramSocket(); 
     } catch (SocketException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
    protected void onPause() { 
     unregisterReceiver(wifiReciever); 
     super.onPause(); 
    } 
    protected void onResume() { 
     registerReceiver(wifiReciever, new IntentFilter(
       WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
     super.onResume(); 
    } 
    class WifiScanReceiver extends BroadcastReceiver { 
     @SuppressLint("UseValueOf") 
     public void onReceive(Context c, Intent intent) { 
      List<ScanResult> wifiScanList = mainWifiObj.getScanResults(); 
      wifis = new String[wifiScanList.size()]; 
      for(int i = 0; i < wifiScanList.size(); i++){ 
       wifis[i] = ((wifiScanList.get(i)).toString()); 
      } 
      list.setAdapter(new ArrayAdapter<String>(getApplicationContext(), 
        android.R.layout.simple_list_item_1,wifis)); 
     } 
    } 
} 
+0

Я думает, что это может сделать работу: http://stackoverflow.com/questions/18799216/how-to-make-a-edittext-box-in-a-dialog Вы должны установить OnClick прослушиватель для элементов списка и когда событие запускается при запуске диалога с edittext. –

ответ

1

Вы можете начать DialogFragment с EditText (How to take text input with DialogFragment in Android?), и вы можете обрабатывать этот диалог с вами элемента списка щелчком мыши.

Щелкните элемент -> Открыть диалоговое окно с запросом пароля -> Верните пароль из текста редактирования -> Сделайте что-то нужное.

Если вы хотите показать текст редактирования в элементе listview, вы можете установить его как view.invisibly и установить видимость с нажатием кнопки.

Смежные вопросы