android定义多个上下文菜单,Android编程实现为ListView创建上下文菜单(ContextMenu)的方法...

本文实例讲述了Android编程实现为ListView创建上下文菜单(ContextMenu)的方法。分享给大家供大家参考,具体如下:

ContextMenu称为上下文菜单,一般在控件上长按时弹出。今天我们学习ContextMenu的用法,这里与listview相结合,先在ListView显示几个Item,然后在Item上长按,弹出一个菜单(就是ContextMenu),点击菜单上的项目,提示刚才长按的Item的Position。

main.xml文件

android:layout_width="fill_parent" android:layout_height="fill_parent"

android:orientation="vertical">

android:textSize="18sp" android:textColor="#FFFFFF"

android:layout_width="fill_parent" android:layout_height="wrap_content"/>

android:layout_width="fill_parent" android:layout_height="fill_parent">

菜单有3个条目,在/res/menu/test_menu.xml中定义,和OptionMenu差不多,只是没有Icon

package com.hello.menu;

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.ContextMenu.ContextMenuInfo;

import android.widget.AdapterView.AdapterContextMenuInfo;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.TextView;

public class ApiDemos extends Activity {

/** Called when the activity is first created. */

private TextView mTextView;

private ListView mListView;

private String [] values;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mTextView = (TextView) findViewById(R.id.text);

//下面的代码用于初始化一些数据

values = new String[30];

StringBuilder sb = new StringBuilder("z");

for (int i = 0; i < values.length; i++) {

sb.append(i);

values[i] = sb.toString();

}

mListView = (ListView) findViewById(R.id.list);

mListView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, values));

mTextView.setText(String.valueOf(mListView.getAdapter().getCount()));

//为ListView注册ContextMenu

registerForContextMenu(mListView);

}

//创建ContextMenu

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

// TODO Auto-generated method stub

if (v.getId() == R.id.list) {

MenuInflater inflater = getMenuInflater();

menu.setHeaderTitle("contextView sample").setHeaderIcon(R.drawable.icon);

inflater.inflate(R.menu.test_menu, menu);

}

super.onCreateContextMenu(menu, v, menuInfo);

}

@Override

public boolean onContextItemSelected(MenuItem item) {

// TODO Auto-generated method stub

if (item.getMenuInfo() instanceof AdapterContextMenuInfo) {

AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();

//处理菜单的点击事件

switch (item.getItemId()) {

case R.id.call:

mTextView.setText(item.getTitle().toString() + menuInfo.position);

break;

case R.id.cc:

mTextView.setText(item.getTitle().toString() + menuInfo.position);

break;

case R.id.poweroff :

mTextView.setText(item.getTitle().toString() + menuInfo.position);

break;

}

}

return super.onContextItemSelected(item);

}

}

希望本文所述对大家Android程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio上下文菜单是一种常见的用户界面元素,它可以在长按ListView或RecyclerView等视图组件时弹出。用户可以在上下文菜单选择不同的操作,例如删除或编辑项目。以下是创建上下文菜单的步骤: 1. 在布局文件添加ListView或RecyclerView等视图组件。 2. 在Activity为该组件注册上下文菜单,使用registerForContextMenu()方法。 3. 重写onCreateContextMenu()方法,使用MenuInflater.inflate()方法加载菜单布局文件。 4. 重写onContextItemSelected()方法,根据用户选择的菜单项执行相应的操作。 下面是一个简单的示例代码,演示如何在Android Studio创建上下文菜单: ```java public class MainActivity extends AppCompatActivity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = findViewById(R.id.list_view); registerForContextMenu(listView); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.delete: // 执行删除操作 return true; case R.id.edit: // 执行编辑操作 return true; default: return super.onContextItemSelected(item); } } } ``` 在这个示例,我们为ListView注册了上下文菜单,并在onCreateContextMenu()方法加载了一个名为context_menu的菜单布局文件。在onContextItemSelected()方法,我们根据用户选择的菜单项执行相应的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值