ContextMenu

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("");
				}
			}
		});
	}
}
      
      
     
     
    
    
   
   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值