我正在使用ListActivity,因为我获得了WIFI范围内的接入点,并将它们列在了一个清单列表中。 我已经成功地做到了这一点,但是当我点击页脚按钮时,我想得到被解雇的项目。如何将它们转换为String数组?
这是代码:
public class APselection extends ListActivity {
protected static final String TAG = "teste";
/** Called when the activity is first created. */
private TextView mScanList;
public List<ScanResult> listaAPs;
protected WifiManager wifiManager;
private IntentFilter mWifiStateFilter;
public String SCAN;
public String[] SCANed;
public String scanAP;
public ListView lv;
public ListView lv1;
public List<Long> list = new ArrayList();
public String[] checked;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
View footer = View.inflate(this, R.layout.footer, null);
wifiManager= (WifiManager)getSystemService(Context.WIFI_SERVICE);
int i;
//function to get the APs
SCANed=handleScanResultsAvailable().split("SPl");
lv=getListView();
lv.addFooterView(footer);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, SCANed));
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setTextFilterEnabled(false);
}
}
答案 0 :(得分:1)
有几种方法可以做到这一点。最简单的可能是为ListView实现OnClickListener。当用户单击列表项时,从单击的项中提取String。将项目存储在ArrayList中。当用户单击时,如果列表包含String,则将其删除,否则添加它。巴姆。所有选定项目的清单。
答案 1 :(得分:0)
我认为没有办法直接从ListView中将已检查项目转换为String数组,您必须经过中间步骤:
您可以使用ListView.getCheckedItemIds获取已检查项目的ID数组。这些ID由列表适配器分配。由于您使用的是ArrayAdapter,position = id,因此您只需使用ArrayAdapter.getItem()来获取与每个已检查项ID相关联的String。
这看起来像是:
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
long ids[] = lv.getCheckedItemIds();
String checkedItems[] = new String[ids.length];
for (int i=0; i<ids.length; i++)
checkedItems[i] = adapter.getItem(i);
//You got your array of checked strings
}
}
请注意,这需要访问适配器,因此您必须将ArrayAdapter分配给变量。