我正在尝试创建一个非常基本的待办事项列表。我是初学者,我无法将单个列表视图转换为多个选择ListView。我试过谷歌搜索,我无法使其工作。 当长按一个条目时,它将打开一个对话框来编辑条目。为此,我做了单选列表。 在应用程序的顶部,有删除按钮,我打算通过它将单个选择转换为多个。点击此按钮后没有任何事情发生。
我也试过检查答案 How to switch ListView choice mode from single to multiple on Clicking event in android?。 上面的答案都没有奏效!
private ArrayList<String> items;
private ArrayAdapter<String> itemsAdapter;
private ListView lvItems;
Context context = this;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvItems = (ListView) findViewById(R.id.lvItems);
items = new ArrayList<String>();
itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items);
lvItems.setAdapter(itemsAdapter);
lvItems.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
items.add("First item");
items.add("Second Item");
lvItems.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
//Try to add edit dialog here
final Dialog dialog = new Dialog(context);
dialog.setTitle("Edit your entry");
dialog.setContentView(R.layout.dialog);
Button saveEntry = (Button) dialog.findViewById(R.id.button);
final EditText editText = (EditText) dialog.findViewById(R.id.editText);
editText.setText(items.get(position));
dialog.show();
saveEntry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newText = editText.getText().toString();
items.set(position, newText);
itemsAdapter.notifyDataSetChanged();
dialog.dismiss();
}
});
return true;
}
});
//I want single ListView to change to multipe
Button deleteButton = (Button)findViewById(R.id.buttonDelete);
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (lvItems.getChoiceMode() == ListView.CHOICE_MODE_SINGLE){
lvItems.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
}
}
});
}
public void onAddItem(View v){
EditText etNewItem = (EditText)findViewById(R.id.etNewItem);
String itemText = etNewItem.getText().toString();
items.add(itemText);
etNewItem.setText("");
}
}
答案 0 :(得分:-1)
转到回收站视图。列表视图现已过时。