在android中向列表视图添加复选框

在android中向列表视图添加复选框,android,android-arrayadapter,android-checkbox,Android,Android Arrayadapter,Android Checkbox,当我运行下面的代码时,复选框的名称以随机字符串的形式出现(比如android.widget)。CheckBox@43e641b0)此外,我无法单击添加的复选框 这是我的java代码: package com.srk.android.rough1; import java.util.ArrayList; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import and

当我运行下面的代码时,复选框的名称以随机字符串的形式出现(比如
android.widget)。CheckBox@43e641b0
)此外,我无法单击添加的复选框

这是我的java代码:

package com.srk.android.rough1;
import java.util.ArrayList;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import android.app.ListActivity;


public class Rough1Activity extends ListActivity {
   ArrayList<CheckBox> listItems=new ArrayList<CheckBox>();
   ArrayAdapter<CheckBox> adapter;
   private EditText taskNameEditText;

   @Override
   public void onCreate(Bundle icicle) {
       super.onCreate(icicle);
       setContentView(R.layout.main);
       adapter=new ArrayAdapter<CheckBox>(this, android.R.layout.simple_list_item_multiple_choice, listItems);
       setListAdapter(adapter);
   }

   public void addItems(View v) {
       taskNameEditText=(EditText)findViewById(R.id.TaskName);
       String taskName=taskNameEditText.getText().toString();
       CheckBox cb=new CheckBox(this);
       cb.setText(taskName);
       listItems.add(cb);
       adapter.notifyDataSetChanged();
   }
}
package com.srk.android.1;
导入java.util.ArrayList;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.CheckBox;
导入android.widget.EditText;
导入android.app.ListActivity;
公共类活动扩展了ListActivity{
ArrayList listItems=新的ArrayList();
阵列适配器;
私有EditText任务名称EditText;
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.main);
adapter=new ArrayAdapter(这个,android.R.layout.simple\u list\u item\u多选,listItems);
setListAdapter(适配器);
}
公共无效附加项(视图五){
taskNameEditText=(EditText)findViewById(R.id.TaskName);
字符串taskName=taskNameEditText.getText().toString();
复选框cb=新复选框(此复选框);
cb.setText(任务名称);
增加(cb);
adapter.notifyDataSetChanged();
}
}

您试图显示复选框,因为您将添加一个整数或字符串数组。。。我建议采取不同的办法:

public class Rough1Activity extends ListActivity {
    private ArrayList<String> listItems = new ArrayList<String>();
    private ArrayAdapter<String> adapter;
    private EditText taskNameEditText;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);

        // I like this layout, but it's your choice
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, listItems);
        //adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, listItems);
        setListAdapter(adapter);

        // I guessed that you want a multiple choice list from your first layout choice. This is optional, you can remove it.
        ListView listView = getListView();
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        // Here you only need to initialize taskNameEditText once 
        taskNameEditText = (EditText) findViewById(R.id.TaskName);
    }

    public void addItems(View v) {
        // Add the current string in the EditText to the ListView
        adapter.add(taskNameEditText.getText().toString());
    }
}
public class活动扩展了ListActivity{
private ArrayList listItems=new ArrayList();
专用阵列适配器;
私有EditText任务名称EditText;
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.main);
//我喜欢这种布局,但这是你的选择
adapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u选中的列表项);
//adapter=new ArrayAdapter(这个,android.R.layout.simple\u list\u item\u多选,listItems);
setListAdapter(适配器);
//我猜您希望从第一个布局选择中获得一个多选列表。这是可选的,您可以将其删除。
ListView ListView=getListView();
listView.setChoiceMode(listView.CHOICE\u MODE\u MULTIPLE);
//在这里,您只需要初始化taskNameEditText一次
taskNameEditText=(EditText)findViewById(R.id.TaskName);
}
公共无效附加项(视图五){
//将EditText中的当前字符串添加到ListView
add(taskNameEditText.getText().toString());
}
}
您希望有一个字符串列表并显示带有复选框的字符串。我将您的ArrayList和ArrayAdapter更改为字符串子类型以反映这一点,并且布局
android.R.layout.simple\u list\u item\u checked
添加了复选框功能本身。现在,用户将看到他们在具有可检查行的ListView中输入的文本

希望这有帮助