import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
@SuppressLint("ShowToast")
public class MainActivity extends Activity {
private EditText et;
private Button bt;
private List
list;
private int position;
private ArrayAdapter
aa;
// 初始化数据
private void initData() {
list = new ArrayList
();
list.add("目录一");
list.add("目录二");
list.add("目录三");
list.add("目录四");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.et);
bt = (Button) findViewById(R.id.bt);
// 数据
initData();
// 视图
ListView lv = (ListView) findViewById(R.id.lv);
aa = new ArrayAdapter
(MainActivity.this,
android.R.layout.simple_list_item_1, list);
lv.setAdapter(aa);
// 注册contentMenu
registerForContextMenu(lv);
}
// 长按会调用此方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// 创建加载器
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.main, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
// 点击一个菜单会调用此方法
@Override
public boolean onContextItemSelected(MenuItem item) {
// 得到菜单的信息contextMenuInfo
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
.getMenuInfo();
// 得到位置
position = acmi.position;
switch (item.getItemId()) {
case R.id.delete:
list.remove(position);
aa.notifyDataSetChanged();
break;
case R.id.add:
list.add("新加的");
aa.notifyDataSetChanged();
break;
case R.id.query:
Toast.makeText(MainActivity.this, list.get(position), 0).show();
aa.notifyDataSetChanged();
break;
case R.id.update:
update();
aa.notifyDataSetChanged();
break;
default:
break;
}
return super.onContextItemSelected(item);
}
// 点击修改
private void update() {
// 显示控件
et.setVisibility(View.VISIBLE);
bt.setVisibility(View.VISIBLE);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 得到editText内容
String s = et.getText().toString().trim();
if (TextUtils.isEmpty(s)) {
Toast.makeText(MainActivity.this, "不能为空", 0).show();
} else {
// 先删除再添加
list.remove(position);
list.add(position, s);
aa.notifyDataSetChanged();
et.setVisibility(View.INVISIBLE);
bt.setVisibility(View.INVISIBLE);
et.setText("");
}
}
});
}
}
ContextMenu
最新推荐文章于 2021-02-16 02:46:50 发布