制作复选框而不是已经检查过的列表

时间:2018-05-18 08:01:56

标签: android performance android-layout listview

我在此代码中遇到问题。它正在工作,并给我已经检查过的IP地址。我想放置复选框,我可以从一个或多个IP地址中选择。查看下面代码下的图像:输入图像描述

btnScan = (Button)findViewById(R.id.scan);
listViewIp = (ListView)findViewById(R.id.listviewip);


ipList = new ArrayList();
adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_checked, android.R.id.text1, ipList);
listViewIp.setAdapter(adapter);

btnScan.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        new ScanIpTask().execute();
    }
});

enter image description here

1 个答案:

答案 0 :(得分:0)

这样可以在您选择项目之前停止按钮被点击,并且只有在选择项目后才允许按钮点击

btnScan = (Button) findViewById(R.id.scan);
listViewIp = (ListView) findViewById(R.id.listviewip);

btnScan.setEnabled(false);

ipList = new ArrayList();
adapter = new ArrayAdapter < String > (this,
  android.R.layout.simple_list_item_checked, android.R.id.text1, ipList);
listViewIp.setAdapter(adapter);

listViewIp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  @Override
  public void onItemSelected(AdapterView << ? > adapterView, View view, int position, long l) {
    btnScan.setEnabled(true);
    CheckBox yourCB = findViewById(R.id.yourCB);
    yourCB.setClickable(false);
  }
  @Override
  public void onNothingSelected(AdapterView << ? > adapterView) {

  }
});

btnScan.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    new ScanIpTask().execute();
  }
});

编辑: 在评论和您的代码中查看您的回复后,您需要使用

parent.getItemAtPosition(position).getId()

这将允许您获取所选项目。