我正在制作一个需要使用ListView的Android应用程序。一旦用户按下menubutton,它会弹出一个弹出窗口,其中包含TextView,EditText和两个按钮,“Ok”和“Cancel”。一旦用户按下“Ok”,EditText中的文本应该添加到ListView中。取消按钮很明显。我还希望能够长按ListView项目以打开包含删除按钮的弹出窗口。我怎样才能做到这一点?到目前为止我正在使用此代码:
public class NotesActivity extends ListActivity {
/** Called when the activity is first created. */
Button AddItemToListView;
static final String[] COUNTRIES = new String[] {
"Matte på A1 med Ole", "Engelsk på klasserommet", "Film på A1 etter friminuttet"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notes);
setListAdapter((ListAdapter) new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), "Note: " + ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu meny) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.listviewmenubuttons, meny);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.AddItemToListView:
Toast.makeText(NotesActivity.this,
"Add note button pressed", Toast.LENGTH_SHORT)
.show();
break;
}
return true;
}
}
答案 0 :(得分:0)
如果要在访问listview.setonlongclick()后添加功能,请尝试对对话框进行一些研究。这是android对话框开发人员的link。
答案 1 :(得分:0)
由于您使用的是ArrayAdapter,因此当用户点击添加时,您必须将新项添加到数组中(从数组更改为List以使其更容易)。然后你应该从ArrayAdapter调用notifyDataSetChanged()。
对于删除是相同的,但您从列表中删除该项目。对notifyDataSetChanged()的调用是告诉ListView它需要重绘自己。