【发布时间】:2015-01-15 17:54:27
【问题描述】:
我在ListView 中显示网络列表,当我单击一个项目时,我希望它显示EditText 要求password。我无法在项目点击时在ListView 上显示EditText。任何帮助将不胜感激。这是我的代码:
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));
}
}
}
【问题讨论】:
-
我认为这可以完成这项工作:stackoverflow.com/questions/18799216/… 您需要将 onclick 侦听器设置为 listview 项目,并在触发事件时使用 edittext 启动对话框。